#include <bits/stdc++.h>
using namespace std;
long long n1, n2, k1, k2;
long long dp[101][101][11][11];
long long compute(long long num1, long long num2, long long cnt1,
                  long long cnt2) {
  if (dp[num1][num2][cnt1][cnt2] != -1) return dp[num1][num2][cnt1][cnt2];
  if (num1 == 0 && num2 == 0) return 1;
  dp[num1][num2][cnt1][cnt2] = 0;
  if (num1 > 0 && cnt1 != k1)
    dp[num1][num2][cnt1][cnt2] =
        (dp[num1][num2][cnt1][cnt2] + compute(num1 - 1, num2, cnt1 + 1, 0)) %
        100000000;
  if (num2 > 0 && cnt2 != k2)
    dp[num1][num2][cnt1][cnt2] =
        (dp[num1][num2][cnt1][cnt2] + compute(num1, num2 - 1, 0, cnt2 + 1)) %
        100000000;
  return dp[num1][num2][cnt1][cnt2];
}
int main() {
  cin >> n1 >> n2 >> k1 >> k2;
  memset(dp, -1, sizeof(dp));
  cout << compute(n1, n2, 0, 0) % 100000000 << endl;
  return 0;
}
