#include <iostream>
using namespace std;
const int N = 1010, INF = 100000007;
int f[N][N];
int n, s, a, b;
int main()
{
cin >> n >> s >> a >> b;
f[0][0] = 1;
for (int i = 1; i <= n - 1; i ++)
{
for (int j = 0; j < n; j ++)
f[i][j] = (f[i - 1][((j + a * i) % n + n) % n] + f[i - 1][((j - b * i) % n + n) % n]) % INF;
}
// 为什么是f[n - 1][s % n](简写)呢
// 因为i的范围是[1, n - 1]
cout << f[n - 1][((s % n) + n) % n] << endl;
return 0;
}