#include <bits/stdc++.h>
using namespace std;
const int MOD = 100 * 1000 * 1000;
int n1, n2, k1, k2;
long long dp[2][101][101];
int solve(int a, int b, int c) {
  if (b == 0 || c == 0) {
    if (a == 0) {
      dp[a][b][c] = (b <= k1);
      return dp[a][b][c];
    }
    dp[a][b][c] = (c <= k2);
    return dp[a][b][c];
  }
  if (dp[a][b][c] != -1) return dp[a][b][c];
  long long ret = 0LL;
  if (a == 0) {
    for (int i = 1; (i <= k1 && i <= b); ++i)
      ret = (ret + solve(1, b - i, c)) % MOD;
  }
  if (a == 1) {
    for (int i = 1; (i <= k2 && i <= c); ++i)
      ret = (ret + solve(0, b, c - i)) % MOD;
  }
  dp[a][b][c] = ret;
  return dp[a][b][c];
}
int main() {
  memset(dp, -1, sizeof(dp));
  cin >> n1 >> n2 >> k1 >> k2;
  int ans = (solve(0, n1, n2) + solve(1, n1, n2)) % MOD;
  cout << ans << "\n";
  return 0;
}
