음식 조합 세기

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

문제

구내식당에서는 모두 MM 가지 음식을 만들 수 있고, 각 음식에는 1번부터 MM번까지 번호가 붙어 있다.

직원은 끼니마다 구내식당이 그때 내놓은 NN 가지 음식 중 하나를 골라 먹는다. 구내식당이 끼니마다 내놓는 음식은 다음 규칙으로 정해진다.

지난 끼니에 KK번 음식을 내놓았다면 이번 끼니에는 K+1K+1번 음식을 내놓는다. 지난 끼니에 MM번 음식을 내놓았다면 이번 끼니에는 1번 음식을 내놓는다.

즉 끼니가 한 번 지날 때마다 내놓는 음식의 번호가 모두 1씩 밀리고, MM번 다음은 다시 1번이 된다. 끼니는 끝없이 이어지므로 이번 끼니의 조합을 계속 밀어서 얻을 수 있는 조합은 언젠가 모두 나온다.

새로 입사한 영희는 구내식당이 내놓는 음식 조합이 몇 가지인지 궁금해졌다. 이번 끼니에 나온 음식의 번호를 알려줄 테니, 서로 다른 음식 조합이 몇 가지인지 세어 보자. 음식 번호의 집합이 같으면 같은 조합으로 본다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. (1T201 \le T \le 20)

각 테스트 케이스의 첫 줄에 구내식당이 만들 수 있는 음식의 가짓수 MM과 한 끼니에 나오는 음식의 가짓수 NN이 주어진다. (1NM1061 \le N \le M \le 10^6)

다음 NN개의 줄에는 이번 끼니에 나온 음식의 번호 xix_i가 한 줄에 하나씩 주어진다. (1xiM1 \le x_i \le M) 번호는 모두 다르고 오름차순으로 정렬되어 있다.

모든 테스트 케이스의 MM을 더한 값은 10610^6을 넘지 않는다.

출력

각 테스트 케이스마다 서로 다른 음식 조합의 가짓수를 한 줄에 하나씩 출력한다.