/*
TASK:tri
LANG:C++
*/
#include<cstdio>
int n,m,min=1000000;
int g[2048][2048];
void read()
{
    int i,k,k1;
    scanf("%d%d",&n,&m);
    for(i=0;i<m;i++)
    {
        scanf("%d%d",&k,&k1);
        g[k][k1]=1;
        g[k1][k]=1;
    }
}
void solve()
{
    int i,j,k;
    for(i=1;i<=n;i++)
    {
            for(j=1;j<=n;j++)
            if(i!=j&&g[i][j])
            {
                for(k=1;k<=n;k++)
                {
                    if(i!=j&&j!=k&&i!=k&&g[i][j]&&g[i][k]&&g[i][j]&&k>i&&k>j&&j>i&&min>i+j+k)min=i+j+k;//printf("%d %d %d\n",i,j,k);
                }
            }
    }
}
int main()
{
    read();
    solve();
    printf("%d\n",min);
}
