#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100 + 5;
const unsigned long long MOD = 1e8;
int n1, n2, k1, k2;
unsigned long long dp[MAXN][MAXN][2];
unsigned long long mod(unsigned long long x) { return (x % MOD + MOD) % MOD; }
int main() {
  cin >> n1 >> n2 >> k1 >> k2;
  memset(dp, 0, sizeof(dp));
  for (int i = (0); i <= (n1); i++) dp[i][0][0] = (i <= k1) ? 1 : 0;
  for (int i = (0); i <= (n2); i++) dp[0][i][1] = (i <= k2) ? 1 : 0;
  for (int i = (1); i <= (n1); i++) {
    for (int j = (1); j <= (n2); j++) {
      for (int k = 1; k <= k1 && i - k >= 0; k++)
        dp[i][j][0] = mod(dp[i][j][0] + dp[i - k][j][1]);
      for (int k = 1; k <= k2 && j - k >= 0; k++)
        dp[i][j][1] = mod(dp[i][j][1] + dp[i][j - k][0]);
    }
  }
  cout << mod(dp[n1][n2][0] + dp[n1][n2][1]);
  return 0;
}
