Problem D: 班委选定

Problem D: 班委选定

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MiB

Description

班主任张老师,厌倦了独自处理班级事务,他需要三个学生组成班委,来帮助他管理班级。

班上有  个学生。张老师想从中选出三人组成一个管理小组,小组成员必须互相认识,以便高效合作。同时,他们不应该太出名,以免以权谋私。对于每个小组成员,他的知名度是他认识的学生数量不包括小组内的另外两人)。

请帮助张老师判断是否可能选出三个互相认识的学生组成小组,并找出他们知名度之和的最小值是多少。

Input

第一行包含两个以空格分隔的整数 n 和 m (3<= n<=4000,0<=m<=4000)—— 分别表示学生数量和互相认识的学生对数。

接下来的  行,每行包含两个以空格分隔的整数ai和bi(1<=ai,bi<=n,ai!=bi)。表示学生  和  互相认识。每对学生最多被列出一次。

Output

如果张老师可以选出三个互相认识的学生,则输出他们知名度之和的最小可能值。否则,输出 "-1"(不含引号)。

Sample Input Copy

5 6
1 2
1 3
2 3
2 4
3 4
4 5

Sample Output Copy

2

HINT

在第一个样例中,张老师应该选择编号为  的三名学生。第一个学生除了小组内另外两人外不认识其他人,因此他的知名度是 。第二个学生的知名度是 ,因为他认识学生 。第三个学生的知名度也是 ,因为他认识学生 。知名度之和为 

另一种可能的选择是 ,但知名度之和更大,为 

在第二个样例中,不存在三个互相认识的学生。