#include<stdio.h>
#include<string.h>
typedef __int64 lld;
const int mod=1000000007;
lld Mul(lld a,lld b){
lld ret=1;
while(b){
if(b&1)ret=ret*a%mod;
a=a*a%mod;
b>>=1;
}
return ret;
}
int main(){
lld n,m,k;
while(scanf("%I64d%I64d%I64d",&n,&m,&k)!=EOF){
if(k>n || k==1)
printf("%I64d\n",Mul(m,n));
else if(k==n)
printf("%I64d\n",Mul(m,(n+1)/2));
else if(k%2==1)
printf("%I64d\n",Mul(m,2));
else
printf("%I64d\n",Mul(m,1));
}
return 0;
}
151D - Quantity of Strings
最新推荐文章于 2018-08-13 10:14:28 发布