线图
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定一个图,定义的线图(定义稍后给出)
考虑一个图的序列,给定,此后
求当趋向于无限大的时候,的值,其中表示所含有的点的数量。
该序列有可能发散,此时输出"-1".

线图的定义与ZJOI2018中的定义相同:
对于无向图,它的线图 也是一个无向图:

它的点集大小为 ,每个点唯一对应着原图的一条边。
两个点之间有边当且仅当这两个点对应的边在原图上有公共点(注意不会有自环)。

输入描述:

第一行数字表示的点数和边数
接下来行,每行个数字,表示一条边

输出描述:

一行一个数字表示答案
示例1

输入

复制
4 5
1 2
2 3
1 3
3 4
1 4

输出

复制
-1
示例2

输入

复制
3 3
1 2
2 3
1 3

输出

复制
3

说明

该图的线图与其本身同构

备注:

保证不含重边与自环