#include <bits/stdc++.h>
using namespace std;
int dp[2][105];
int main() {
  int c, w, h, c2;
  cin >> c >> w >> h;
  c2 = (c + 1) >> 1;
  int *src = dp[0], *dst = dp[1];
  src[0] = 1;
  for (int i = 1; i <= w; i++) src[i] = 0;
  while (c2--) {
    dst[0] = src[0];
    for (int i = 1; i <= w; i++) {
      dst[i] = src[i - 1] * h % 1000003;
      dst[0] += src[i];
    }
    dst[0] %= 1000003;
    swap(src, dst);
  }
  int ans = 0, sum = 0;
  if ((c & 1) == 0) {
    for (int i = 0; i <= w; i++) {
      sum += src[i];
      ans = (ans + (long long)sum * src[w - i]) % 1000003;
    }
  } else {
    for (int i = 0; i <= w; i++) {
      sum += dst[i];
      ans = (ans + (long long)sum * src[w - i]) % 1000003;
    }
  }
  cout << ans % 1000003 << endl;
  return 0;
}
