**Time limit:**1.00 s**Memory limit:**512 MB

Given an undirected graph, your task is to determine its *girth*, i.e., the length of its shortest cycle.

# Input

The first input line has two integers n and m: the number of nodes and edges. The nodes are numbered 1,2,\dots,n.

After this, there are m lines describing the edges. Each line has two integers a and b: there is an edge between nodes a and b.

You may assume that there is at most one edge between each two nodes.

# Output

Print one integer: the girth of the graph. If there are no cycles, print -1.

# Constraints

- 1 \le n \le 2500
- 1 \le m \le 5000

# Example

Input:

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

Output:

3