#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e8;
int n1, n2, k1, k2;
int dp[101][101][11][2];
int solve2(int n1, int n2, int till1, int till2, int turn) {
  if (dp[n1][n2][till1 + till2][turn] != -1)
    return dp[n1][n2][till1 + till2][turn];
  int ans = 0;
  if (n2 == 0) {
    if (n1 != 0 && n1 + till1 <= k1)
      ans = 1;
    else
      ans = 0;
  }
  if (n1 == 0) {
    if (n2 != 0 && n2 + till2 <= k2)
      ans = 1;
    else
      ans = 0;
  }
  if (n1 != 0 && n2 != 0) {
    if (turn) {
      for (int i = 1; i <= k1 && i <= n1; i++) {
        ans += ((solve2(n1 - i, n2, till1 + i, 0, 0)) % MOD);
        ans %= MOD;
      }
    } else {
      for (int i = 1; i <= k2 && i <= n2; i++) {
        ans += ((1 * solve2(n1, n2 - i, 0, till2 + i, 1)) % MOD);
        ans %= MOD;
      }
    }
  }
  return dp[n1][n2][till1 + till2][turn] = (ans % MOD);
}
int main() {
  cin >> n1 >> n2 >> k1 >> k2;
  memset(dp, -1, sizeof(dp));
  cout << (solve2(n1, n2, 0, 0, 1) + solve2(n1, n2, 0, 0, 0)) % MOD;
  return 0;
}
