#include #include using mint=atcoder::modint1000000007; int K,N; /* dp[i][j][k]:レベルiのガスケットについて、外のj個の辺の外の色が決まっている(ただし、決まっているものについて、種類数はk)時の塗り方の場合の数 */ int main(){ std::cin >> K >> N; std::vector dp(K+1,std::vector(4,std::vector(4))); dp[0][0][0]=N; dp[0][1][1]=N-1; dp[0][2][1]=N-1; dp[0][2][2]=N-2; dp[0][3][1]=N-1; dp[0][3][2]=N-2; dp[0][3][3]=N-3; for(int i=0;i