#include #include #include #include using namespace std; #define inf 0x3f3f3f3f int State[12]; int visited[60000][12]; int dp[60000][12]; int map[12][12]; int n,m; void Initiate() { State[0]=1; for(int i=1;i<=10;i++) State[i]=State[i-1]*3; for(int i=0;i<=State[10];i++){ int tmp=i; for(int j=0;j<=10;j++){ visited[i][j]=tmp%3; tmp/=3; } } } int main() { Initiate(); int u,v,w,ans; while(~scanf("%d%d",&n,&m)){ memset(dp,inf,sizeof(dp)); memset(map,inf,sizeof(map)); for(int i=0;i=2)continue; if(map[j][k]==inf)continue; dp[i+State[k]][k]=min(dp[i+State[k]][k],dp[i][j]+map[j][k]); } } if(flag){ for(int j=0;j