#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const long long LLINF = 1e18;
const int maxN = 1e5;
const int MOD = 100000000;
int N1, N2, K1, K2;
int dp[110][110][20][20];
bool vis[110][110][20][20];
int f(int fm, int hm, int fmax, int hmax) {
  if (fm < 0 || hm < 0 || fmax > K1 || hmax > K2) return 0;
  if (fm == 0 && hm == 0) return 1;
  if (vis[fm][hm][fmax][hmax]) return dp[fm][hm][fmax][hmax];
  vis[fm][hm][fmax][hmax] = true;
  int &ret = dp[fm][hm][fmax][hmax];
  return ret = (f(fm - 1, hm, fmax + 1, 0) + f(fm, hm - 1, 0, hmax + 1)) % MOD;
}
int main() {
  scanf("%d %d", &N1, &N2), scanf("%d %d", &K1, &K2);
  printf("%d\n", f(N1, N2, 0, 0));
  return 0;
}
