#include <bits/stdc++.h>
int n, m, k;
int main() {
  long long ans = 1;
  scanf("%d%d%d", &n, &m, &k);
  if (k == n) {
    int mid = k / 2 + (k & 1);
    for (int i = 0; i < mid; ++i) ans = (ans * m) % 1000000007;
    printf("%I64d", ans);
  } else if (!(k % 2) && k < n)
    printf("%d", m);
  else if (k == 1 || k > n) {
    for (int i = 0; i < n; ++i) ans = (ans * m) % 1000000007;
    printf("%I64d", ans);
  } else {
    printf("%d", m * m);
  }
}
