<aside> 💡
#include <bits/stdc++.h>
#define FASTIO ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
using namespace std;
typedef long long int ll;
#define INF 2139062143
int N, M, A, B;
pair<int, int> lr[101];
int dp[100'001];
int go(int cur)
{
int &ret = dp[cur];
if(ret != INF) return ret;
int dp1 = INF;
int dp2 = INF;
bool flag1 = true;
bool flag2 = true;
for(int i = 0; i<M; i++){
auto[l, r] = lr[i];
if(l<=cur-A && cur-A<=r) flag1 = false;
if(l<=cur-B && cur-B<=r) flag2 = false;
}
if(flag1 && cur-A>=0) dp1 = go(cur-A);
if(flag2 && cur-B>=0) dp2 = go(cur-B);
return ret = min(dp1, dp2)+1;
}
signed main()
{
FASTIO;
cin >> N >> M >> A >> B;
for(int i = 0; i<M; i++){
int l, r; cin >> l >> r;
lr[i] = {l, r};
}
memset(dp, 0x7f, sizeof(int)*(N+1));
dp[0] = 0;
int ans = go(N);
if(ans >= INF) cout << "-1\\n";
else cout << ans <<"\\n";
return 0;
}