#include <bits/stdc++.h>
using namespace std;
long long int mod = 1e9 + 7;
long long int pow(long long int a, long long int b) {
  long long int c = mod;
  long long int x = 1, y = a % c;
  while (b > 0) {
    if (b % 2 == 1) x = (x * y) % c;
    y = (y * y) % c;
    b /= 2;
  }
  return x % c;
}
int main() {
  long long int t, k = 0, i, j, c, m, n, h, w;
  cin >> n >> m >> k;
  if (n < k || k == 1) {
    cout << pow(m, n);
    return 0;
  }
  if (n == k) {
    if (k % 2)
      cout << pow(m, k / 2LL + 1);
    else
      cout << pow(m, k / 2LL);
    return 0;
  }
  if (k % 2 == 0)
    cout << m;
  else
    cout << (m * m) % mod;
  return 0;
}
