/*
* Problem :: 9372 / 상근이의 여행
*
* Kind :: Graph
*
* Insight
* - 가장 적은 종류의 비행기를 타고 모든 국가들을 여행한다
* + 가장 적은 '종류' 의 비행기를 타고 모든 국가들을 여행한다
* # 비행 스케줄은 연결 그래프이다
* 간선은 비행기의 한 종류이다
* -> 모든 정점이 연결된 그래프 중에서 간선의 개수가 최소인 그래프를 구해야한다
* => 연결 그래프에서 모든 정점이 연결되기 위해선 최소 N-1 개의 간선이 필요하다
* 따라서 답은 N-1 이다
*
* - 모든 정점이 연결된 그래프 중에서 간선의 개수가 최소인 그래프
* + 최소 신장 트리가 위의 성질을 만족하는 대표적인 그래프이다
* => 이때 간선의 개수도 N-1 이다
*
* Point
* - Greedy 같은 Graph 문제라니... 신선하다
*/
//
// BOJ
// ver.C++
//
// Created by GGlifer
//
// Open Source
#include <iostream>
using namespace std;
#define endl '\n'
// Set up : Global Variables
/* None */
// Set up : Functions Declaration
/* None */
int main()
{
// Set up : I/O
ios::sync_with_stdio(false);
cin.tie(nullptr);
// Set up : Input
int T; cin >> T;
while (T--) {
int N, M;
cin >> N >> M;
for (int i=0; i<M; i++) {
int a, b;
cin >> a >> b;
}
// Control : Output
cout << N-1 << endl;
}
}
// Helper Functions
/* None */