#include <bits/stdc++.h>
using namespace std;
const long long int mod = 100000000;
const long long int maxn = 110;
long long int dp[maxn][maxn][2];
long long int pm(long long int i) { return (i % mod + mod) % mod; }
int main() {
  long long int n1, n2, k1, k2;
  cin >> n1 >> n2 >> k1 >> k2;
  for (int i = 0; i <= n1; i++) {
    if (i <= k1) {
      dp[i][0][0] = 1;
    } else {
      dp[i][0][0] = 0;
    }
    dp[i][0][1] = 0;
  }
  for (int i = 0; i <= n2; i++) {
    if (i <= k2) {
      dp[0][i][1] = 1;
    } else {
      dp[0][i][1] = 0;
    }
    dp[0][i][0] = 0;
  }
  for (int i = 1; i <= n1; i++) {
    for (int j = 1; j <= n2; j++) {
      dp[i][j][0] = dp[i - 1][j][0] + dp[i - 1][j][1];
      if (i > k1) {
        dp[i][j][0] -= dp[i - k1 - 1][j][1];
      }
      dp[i][j][0] = pm(dp[i][j][0]);
      dp[i][j][1] = (dp[i][j - 1][0] + dp[i][j - 1][1]) % mod;
      if (j > k2) {
        dp[i][j][1] -= dp[i][j - k2 - 1][0];
      }
      dp[i][j][1] = pm(dp[i][j][1]);
    }
  }
  cout << (dp[n1][n2][0] + dp[n1][n2][1]) % mod << endl;
  return 0;
}
