#include <bits/stdc++.h>
using namespace std;
void print(long long int arr[], long long int n) {
  for (long long int xx = 0; xx < n; xx += 1) {
    cout << arr[xx] << " ";
  }
  cout << " "
       << "\n";
}
void print(long long int n) { cout << n << "\n"; }
void print(string s) { cout << s << "\n"; }
long long int cache[105][105][15][15];
long long int n1, n2, K1, K2;
long long int fn(long long int n1, long long int n2, long long int k1,
                 long long int k2) {
  if ((n1 == 0) && (n2 == 0)) return 1;
  if (cache[n1][n2][k1][k2] != -1) return cache[n1][n2][k1][k2];
  long long int ans = 0;
  if (n1 > 0 && k1 > 0) {
    ans += fn(n1 - 1, n2, k1 - 1, K2);
    if (ans >= 100000000) ans %= 100000000;
  }
  if (n2 > 0 && k2 > 0) {
    ans += fn(n1, n2 - 1, K1, k2 - 1);
    if (ans >= 100000000) ans %= 100000000;
  }
  cache[n1][n2][k1][k2] = ans;
  return ans;
}
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n1 >> n2 >> K1 >> K2;
  memset(cache, -1, sizeof(cache));
  print(fn(n1, n2, K1, K2));
  return 0;
}
