import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class P1966 {
static int T;
static int N, M;
public static void main(string[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputSreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine());
// 테스트 케이스
T = Integer.parseInt(st.nextToken());
for(int t = 0; t < T; t++) {
st = new StringTokenizer(br.realLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
// 이동 횟수를 저장할 변수
int count = 0;
// 큐로 활용할 연결 리스트를 만든다. 초기위치와 중요도를 함께 저장하기 위해 배열을 사용한다.
LinkedList<int[]> docs = new LinkedList<>();
st = new StringTokenizer(br.readLine());
for(int j =0; j < N; j++) {
// j: 초기위치, Integer.parseInt(st.nextToken()): 중요도
docs.add(new int[]{j, Integer.parseInt(st.nextToken())});
}
// 프린트 큐에서 더이상 뽑을 것이 없을 때까지 반복한다.
while(!docs.isEmpty()){
int[] front = docs.poll(); // 가장 앞에 있는 원소를 뽑는다. -> 이 원소는 맨 뒤로 이동하거나, 프린트에서 뽑기 때문에 뽑아온다.
boolean isMax = true; // 가장 큰 원소인지 관리
// 큐에 남아있는 원소들과 중요도를 비교한다.
for(int k = 0; k < docs.size(); k++){
if(front[1] < docs.get(k)[1]){
// 뽑은 원소 및 k 이전의 원소들은 뒤로 보낸다.
docs.offer(front);
for(int l = 0; l < k; l++){
docs.offer(docs.poll());
}
// front 원소가 가장 큰 원소가 아니므로 false로 지정하고 탐색한다.
isMax = false;
break;
}
}
// Front 원소가 가장 큰 원소가 아니므로 다음 반복문으로 이동한다.
if(isMax == false) {
continue;
}
count++; // 뭐든 하나는 출력된 것이니 count를 늘린다..
// 출력하는 문서가 찾고자 하는 문서이면 해당 테스트 케이스를 종료한다.
if(front[0] == M){
break;
}
}
sb.append(count).append('\n');
}
System.out.println(sb);
}
}
아이디어는 쉽게 떠올렸지만 종료조건과 반복문을 어디에서 할 것인지 정하는데 어려움이 있었다.