#include <bits/stdc++.h>
using namespace std;
int n, m, k;
long long pow2(int x) {
  if (x == 0) return 1;
  if (x == 1) return 2;
  long long h = pow2(x / 2);
  return (h * h * (x & 1 ? 2 : 1)) % 1000000009;
}
int main() {
  cin >> n >> m >> k;
  int x = n / k;
  int y = n % k;
  int z = m - (x * (k - 1) + y);
  if (z > 0) {
    long long v = ((pow2(z + 1) + 1000000009 - 2 - z) * k) % 1000000009;
    long long res = (v + m) % 1000000009;
    cout << res << endl;
  } else {
    cout << m << endl;
  }
}
