Wooksin-ness of A Graph

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

At the headquarters of algospot.com, Toivoa “the chairman” has been pestering Astein “the slave” for a new graph problem for so long. So Astein came up with the following problem.

Wooksin-ness(욱신함) of an undirected graph G(V,E)G(V, E) is defined as the minimum number of additional edges in order to have a cycle in the graph. Stated formally, you can write it as:

minEE\min |E' - E| s.t.s.t. EEE' ⊇ E and G(V,E)G'(V, E') has at least one cycle

However, loops (edges that start and end at the same vertex) and multiple edges between a single pair of vertices are not allowed.

Write a program that calculates Wooksin-ness of given graph.

입력

The input consists of TT test cases. The number of test cases TT is given in the first line of the input.

The first line of each test case contains two integers VV and EE (1V1001 ≤ V ≤ 100, 0E1,0000 ≤ E ≤ 1\\,000), where VV represents the number of vertices in the graph, and EE represents the number of edges. The vertices are numbered from 00 to V1V - 1. The following EE lines will each contain two integers, which are the number of two vertices connected by an edge.

There will be no loops in the input data. There will be at most one edge between a pair of vertices.

출력

Print exactly one line for each test case. The line should contain an integer indicating the minimum number of additional edges we need to add to the graph to get a cycle. If this is impossible, print -1 instead.