#include <bits/stdc++.h>
using namespace std;
const long long m = 1e8;
const int MAX = 101;
long long n1, n2, k1, k2;
long long dp[MAX][MAX][MAX][2];
long long solve(long long rem1, long long rem2, long long cnt, long long f) {
  if (!f && cnt > k1) return 0;
  if (f && cnt > k2) return 0;
  if (rem1 == 0 && rem2 == 0) return 1;
  long long &ans = dp[rem1][rem2][cnt][f];
  if (ans != -1) return ans;
  long long a = 0, b = 0;
  if (rem1 > 0) a = solve(rem1 - 1, rem2, (!cnt || !f) ? cnt + 1 : 1, 0) % m;
  if (rem2 > 0) b = solve(rem1, rem2 - 1, (!cnt || f) ? cnt + 1 : 1, 1) % m;
  ans = (a + b) % m;
  return ans;
}
int main() {
  cin >> n1 >> n2 >> k1 >> k2;
  memset(dp, -1, sizeof dp);
  cout << solve(n1, n2, 0, 0);
  return 0;
}
