#include<bits/stdc++.h>
using namespace std;
int main(){
    int v,e;scanf("%d%d",&v,&e);
    vector<vector<int>> a(v,vector<int>(v,1e9));
    for(int i=0;i<e;i++){
        int s,t,d;scanf("%d%d%d",&s,&t,&d);
        a[s][t]=d;
    }
    vector<vector<int>> dist(1<<v,vector<int>(v,1e9));
    dist[1][0]=0;
    for(int i=2;i<(1<<v);i++){
        for(int j=0;j<v;j++){
            if((i>>j)&1==0)continue;
            for(int k=0;k<v;k++){
                if(j==k)continue;
                int tmp=dist[i^(1<<j)][k]+a[k][j];
                dist[i][j]=min(dist[i][j],tmp);
            }
        }
    }
    int ans=1e9;
    for(int i=0;i<v;i++)ans=min(ans,dist[(1<<v)-1][i]+a[i][0]);
    if(ans==1e9)puts("-1");
    else printf("%d\n",ans);
    return 0;
}
