#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
typedef pair<int,int>Pll;
void clear(queue<Pll>& Q){
queue<Pll> empty;
swap(empty, Q);
}
int main()
{
freopen("in.txt","r",stdin);
queue<Pll>Q;
int Time = 0,x,T,n,m,Last,a[100];
int *ad;
scanf("%d",&T);
while(T--){
Time = 0;
clear(Q);
scanf("%d%d",&n,&m);
Last = m+1;
for(int i = 1 ; i<=n ; i++){
scanf("%d",&x);
a[i-1]=x;
Pll p = make_pair(x,i);
Q.push(p);
}
sort(a,a+n,greater<int>());
ad = &a[0];
for(;;){
if(Q.front().first!=*ad){
Q.push(Q.front());
Q.pop();
}else{
Time++;
ad++;
x = Q.front().second;
if(x==Last) break;
else Q.pop();
}
}
printf("%d\n",Time);
}
return 0;
}
/*
知识点:
思想: 先按照n个数字的顺序,把数字压入队列queue< pair<x,i> >Q中,然后根据第二个数字m+1知道我们要打印的数字
为多少并存储在int Last中; 将输入的n个优先级传入数组int Py[n],再sort(py,py+n,greater<int>() )一下,根据优先级
的顺序从大到小排列,设置指针int &p = a; 如果Q.front().first!=*p,Q.push(Q.front()),Q.pop(); 如果队列第一个pair
的first值==*p,那么....(具体代码已给出)
注意: 因为队列中没有可以清空队列的函数,所以我们自己造一个
*/