#include #include #include #define inf 1<<29 #define LL long long #define MOD 1000000007 using namespace std; int dp[41][41][5][5][5][5][2]; int get_dp(int x,int y,int l,int r,int u,int d,int k){ if(dp[x][y][l][r][u][d][k]!=-1) return dp[x][y][l][r][u][d][k]; dp[x][y][l][r][u][d][k]=0; if((x==1&&k==0)||(y==1&&k)){ for(int i=1;i<5;i++) if(i!=l&&i!=r&&i!=u&&i!=d) dp[x][y][l][r][u][d][k]++; return dp[x][y][l][r][u][d][k]; } dp[x][y][l][r][u][d][k]=0; if(!k){ for(int i=1;i