#include <bits/stdc++.h>
using namespace std;
void err(istream_iterator<string> it) {}
template <typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args) {
  cerr << *it << " = " << a << endl;
  err(++it, args...);
}
long long dp[101][101][2];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n1, n2, k1, k2;
  cin >> n1 >> n2 >> k1 >> k2;
  dp[0][0][0] = dp[0][0][1] = 1;
  for (long long i = (0); i < (n1 + 1); i++) {
    for (long long j = (0); j < (n2 + 1); j++) {
      for (long long l = (1); l < (min(j, k2) + 1); l++) {
        dp[i][j][0] += dp[i][j - l][1];
        dp[i][j][0] %= 100000000;
      }
      for (long long l = (1); l < (min(i, k1) + 1); l++) {
        dp[i][j][1] += dp[i - l][j][0];
        dp[i][j][1] %= 100000000;
      }
    }
  }
  cout << (dp[n1][n2][0] + dp[n1][n2][1]) % 100000000;
  return 0;
}
