#include <bits/stdc++.h>
using namespace std;
const int delta = 100 * 100 * 100 * 100;
const int maxn = 210;
const int maxm = 15;
long long dp[maxn][maxn][maxm][maxm];
int main() {
  int n, m, x, y;
  cin >> n >> m >> x >> y;
  dp[1][0][1][0] = 1;
  dp[0][1][0][1] = 1;
  for (int k = 0; k <= n; k++)
    for (int l = 0; l <= m; l++)
      for (int i = 0; i <= x; i++)
        for (int j = 0; j <= y; j++) {
          if (i != x and j != y) {
            if (!j) {
              dp[k + 1][l][i + 1][0] += dp[k][l][i][j];
              dp[k][l + 1][0][1] += dp[k][l][i][j];
              dp[k + 1][l][i + 1][0] = dp[k + 1][l][i + 1][0] % delta;
              dp[k][l + 1][0][1] = dp[k][l + 1][0][1] % delta;
            }
            if (!i) {
              dp[k][l + 1][0][j + 1] += dp[k][l][i][j];
              dp[k + 1][l][1][0] += dp[k][l][i][j];
              dp[k][l + 1][0][j + 1] = dp[k][l + 1][0][j + 1] % delta;
            }
          } else {
            if (!i) {
              dp[k + 1][l][1][0] += dp[k][l][i][j];
              dp[k + 1][l][1][0] = dp[k + 1][l][1][0] % delta;
            }
            if (!j) {
              dp[k][l + 1][0][1] += dp[k][l][i][j];
              dp[k][l + 1][0][1] = dp[k][l + 1][0][1];
            }
          }
        }
  long long ans = 0;
  for (int i = 0; i <= x; i++)
    for (int j = 0; j <= y; j++) ans += dp[n][m][i][j];
  cout << ans % delta << endl;
  return 0;
}
