#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000003;
deque<long long> nums;
long long C, W, H, po[105];
int main() {
  ios_base::sync_with_stdio(0);
  cin >> C >> W >> H;
  po[1] = H;
  for (int i = 2; i < 105; i++) po[i] = po[i - 1] * H % MOD;
  nums.push_back(1);
  nums.push_back(1);
  for (int i = 1; i < C + 1; i++) {
    long long rec = nums.front() * (H + 1) % MOD;
    if (i > W) rec = (rec - (po[W + 1] * nums.back() % MOD)) % MOD;
    if (rec < 0) rec += MOD;
    nums.push_front(rec);
    if (nums.size() > (W + 2)) nums.pop_back();
  }
  if (nums[0] < 0) nums[0] += MOD;
  cout << nums[0];
}
