VK Cup 2015 - Round 3 (unofficial online mirror, Div. 1 only)
E
Playing on Graph
Codeforces
2600
原题
← DF →
翻译中…

Vova and Marina love offering puzzles to each other. Today Marina offered Vova to cope with the following task.

翻译中…

Vova has a non-directed graph consisting of $*n*$ vertices and $*m*$ edges without loops and multiple edges. Let's define the operation of contraction two vertices $*a*$ and $*b*$ that are not connected by an edge. As a result of this operation vertices $*a*$ and $*b*$ are deleted and instead of them a new vertex $*x*$ is added into the graph, and also edges are drawn from it to all vertices that were connected with $*a*$ or with $*b*$ (specifically, if the vertex was connected with both $*a*$ and $*b*$, then also exactly one edge is added from $*x*$ to it). Thus, as a result of contraction again a non-directed graph is formed, it contains no loops nor multiple edges, and it contains $(*n* - 1)$ vertices.

翻译中…

Vova must perform the contraction an arbitrary number of times to transform the given graph into a chain of the maximum length. A chain of length $*k*$ ($*k* ≥ 0$) is a connected graph whose vertices can be numbered with integers from $1$ to $*k* + 1$ so that the edges of the graph connect all pairs of vertices $(*i*, *i* + 1)$ ($1 ≤ *i* ≤ *k*$) and only them. Specifically, the graph that consists of one vertex is a chain of length $0$. The vertices that are formed as a result of the contraction are allowed to be used in the following operations of contraction.

翻译中…

image The picture illustrates the contraction of two vertices marked by red.

翻译中…

Help Vova cope with his girlfriend's task. Find the maximum length of the chain that can be obtained from the resulting graph or else determine that it is impossible to obtain the chain.

翻译中…

Input

翻译中…

The first line contains two integers $*n*, *m*$ ($1 ≤ *n* ≤ 1000$, $0 ≤ *m* ≤ 100 000$) — the number of vertices and the number of edges in the original graph.

翻译中…

Next $*m*$ lines contain the descriptions of edges in the format $*a*_{*i*}, *b*_{*i*}$ ($1 ≤ *a*_{*i*}, *b*_{*i*} ≤ *n*$, $*a*_{*i*} ≠ *b*_{*i*}$), which means that there is an edge between vertices $*a*_{*i*}$ and $*b*_{*i*}$. It is guaranteed that there is at most one edge between each pair of vertexes.

翻译中…

Output

翻译中…

If it is impossible to obtain a chain from the given graph, print $- 1$. Otherwise, print the maximum possible number of edges in the resulting chain.

翻译中…

Note

翻译中…

In the first sample test you can contract vertices $4$ and $5$ and obtain a chain of length $3$.

翻译中…

In the second sample test it is initially impossible to contract any pair of vertexes, so it is impossible to achieve the desired result.

翻译中…

In the third sample test you can contract vertices $1$ and $2$ and obtain a chain of length $2$.

翻译中…

样例

Input #1
5 4
1 2
2 3
3 4
3 5
Output #1
3
InputCopy OutputCopy
Input #2
4 6
1 2
2 3
1 3
3 4
2 4
1 4
Output #2
-1
InputCopy OutputCopy
Input #3
4 2
1 3
2 4
Output #3
2
InputCopy OutputCopy
题目信息
题号
542E
时间限制
3 s
内存限制
256 MB
标签
图论
最短路

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。