#include <iostream>#include <cstring>#include <vector>#include <cstdio>using namespace std;struct node{int w;int n;}nn;int T,N,ATK,x;vector<node> V;int dir;int main(){scanf("%d",&T);while(T--){scanf("%d%d",&N,&ATK);V.clear();for(int i=0;i<N;i++){scanf("%d",&nn.w);nn.n=i+1;V.push_back(nn);}dir=1;int num=0;int ans;int count=1;while(V.size()>1){if(count>=N+5){ans=num;break;}count++;if(V[num].w>ATK){V[num].w-=ATK;num+=dir;if(num==V.size())num=0;else if(num==-1)num=V.size()-1;}else{V.erase(V.begin()+num);if(dir==1)num=num-1;dir=-dir;if(num==-1)num=V.size()-1;else if(num==V.size())num=0;}}if(V.size()==1)ans=0;printf("%dn",V[ans].n);}return 0;}


