#include <bits/stdc++.h>
using namespace std;
const int N = 105;
int dr8[] = {0, 0, 1, -1, 1, 1, -1, -1};
int dc8[] = {1, -1, 0, 0, -1, 1, -1, 1};
int dr4[] = {0, 1, -1, 0};
int dc4[] = {1, 0, 0, -1};
int dp[N][N][15][15][2];
int n1, n2, n, k1, k2;
int calc(int f, int h, int tf, int th, int pr) {
  if (f > k1 || h > k2 || tf > n1 || th > n2) return 0;
  if (f <= k1 && h <= k2 && tf == n1 && th == n2) return 1;
  if (dp[th][tf][f][h][pr] != -1) return dp[th][tf][f][h][pr];
  int ans = 0;
  if (pr == 0)
    ans = (1LL * calc(f + 1, 0, tf + 1, th, 0) % 100000000 +
           calc(0, 1, tf, th + 1, 1) % 100000000) %
          100000000;
  else
    ans = (1LL * calc(0, h + 1, tf, th + 1, 1) % 100000000 +
           calc(1, 0, tf + 1, th, 0) % 100000000) %
          100000000;
  return dp[th][tf][f][h][pr] = ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  memset(dp, -1, sizeof dp);
  cin >> n1 >> n2 >> k1 >> k2;
  n = n1 + n2;
  int ans = calc(1, 0, 1, 0, 0) % 100000000;
  memset(dp, -1, sizeof dp);
  ans = (1LL * ans + calc(0, 1, 0, 1, 1)) % 100000000;
  cout << ans % 100000000;
}
