#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
int N,M,x,y,c,Cost[21][21],C[21][1<<21];
int main()
{
freopen("hamilton.in","r",stdin);
freopen("hamilton.out","w",stdout);
scanf("%d%d",&N,&M);
while(M--){
scanf("%d%d%d",&x,&y,&c);
Cost[x][y]=x;
}
memset(C,INF,sizeof(C));
C[0][1]=1;
for(int k=1;k<(1<<N);++k)
for(int i=0;i<N;++i)
if(k&(1<<i))
for(int j=0;j<N;++j)
if(Cost[i][j]>0&&!(k&(1<<j)))
C[j][k|(1<<j)]=min(C[j][k|(1<<j)],Cost[i][j]+C[i][k]);
int sol=INF;
for(int i=0;i<N;++i)
if(Cost[i][0])
sol=min(sol,C[i][(1<<N)-1]+Cost[i][0]);
if(sol>=INF)printf("Nu exista solutie");
else printf("%d",sol);
return 0;
}