分析
(n)个元素可以独立操作,考虑单个元素,
则选不选择一定有一道分界线,
而这条分界线正好要走(k)次,
每次可以选择向上走或向右走,所以为(2^k),
由于(n)个元素相互独立,则为(2^{nk})
代码
#include <cstdio>
#include <cctype>
#define rr register
using namespace std;
const int mod=1000000007;
inline signed ksm(int x,int y){
rr int ans=1;
for (;y;y>>=1,x=1ll*x*x%mod)
if (y&1) ans=1ll*ans*x%mod;
return ans;
}
signed main(){
rr int n,m; scanf("%d%d",&n,&m);
return !printf("%d",ksm(2,1ll*n*m%(mod-1)));
}