#include <bits/stdc++.h>
using namespace std;
long long n, m, h, p = 1000003;
long long quick_mod(long long a, long long b) {
  long long ans = 1;
  a %= p;
  while (b) {
    if (b & 1) {
      ans = ans * a % p;
      b--;
    }
    b >>= 1;
    a = a * a % p;
  }
  return ans;
}
long long C(long long n, long long m) {
  if (m > n) return 0;
  long long ans = 1;
  for (int i = 1; i <= m; i++) {
    long long a = (n + i - m) % p;
    long long b = i % p;
    ans = ans * (a * quick_mod(b, p - 2) % p) % p;
  }
  return ans;
}
long long Lucas(long long n, long long m) {
  if (m == 0) return 1;
  return C(n % p, m % p) * Lucas(n / p, m / p) % p;
}
int main() {
  long long a[210] = {}, f[210] = {}, x, y = 0;
  cin >> n >> m >> h;
  x = 1;
  a[0] = 1;
  for (long long i = 1; i <= m; i++) {
    x = (x * h) % p;
    a[i] = x % p;
  }
  f[0] = 1;
  for (long long i = 1; i <= m; i++) {
    f[i] = (f[i - 1] * (h + 1)) % p;
  }
  f[m + 1] = (f[m] * (h + 1) % p - a[m] * h % p + p) % p;
  for (long long i = m + 2; i <= n; i++) {
    f[i % (m + 2)] = (f[(i - 1) % (m + 2)] * (h + 1) % p -
                      f[i % (m + 2)] * a[m] * h % p + p) %
                     p;
  }
  cout << f[n % (m + 2)] << endl;
}
