/*
TASK: tri
LANG: c++
*/
#include<iostream.h>
int a[2000][2],b[2000],br,m,n,z=0;
long min=99999;
int func(int l)
{
//cout<<"   func   ";
int k,i,j,x;
//for(x=0;x<br;x++){cout<<"b[x]"<<b[x];}
for(i=0;i<br;i++){
   for(j=i+1;j<br;j++){
      for(k=0;k<m;k++){
         if(a[k][0]==b[i]){
//            cout<<" mina "<<min;
            if(a[k][1]==b[j]){
//               cout<<" mina "<<min;
               if(l+b[i]+b[j]<min) {min=l+b[i]+b[j]; z++;}
               break;               
               }
            }
         if(a[k][1]==b[i]){
//            cout<<" MINA "<<min;
//            cout<<" b[i] "<<b[i]<<" b[j] "<<b[j]<<" a[k][0] "<<a[k][0]<<" k "<<k;;
            
            if(a[k][0]==b[j]){
//             cout<<" MINA12"<<min;
               if(l+b[i]+b[j]<min) {min=l+b[i]+b[j]; z++;}
               break;               
               }
            }
//         cout<<" MIN "<<min;
         }
      }
   }
}


int main ()
{
int i,j,x;
cin>>n>>m;
for(i=0;i<m;i++){cin>>a[i][0]>>a[i][1];}
br=0;
for(i=0;i<m;i++){
   for(x=0;x<2000;x++){b[x]=0;}
   br=0;
   for(j=0;j<m;j++){
      if(a[j][0]==a[i][0]){
         b[br]=a[j][1];
         br++;
         }
      if(a[j][1]==a[i][0]){
         b[br]=a[j][0];
         br++;
         }
      }
   func(a[i][0]);
   }
if(z==0) min=0;
cout<<min<<"\n";
//cin>>br;
return 0;
}
