#include<algorithm>
#include<iostream>
using namespace std;
int main(int argc,char **argv){
int ans1[55]={0};
int ans2[55]={0};
int ans3[55]={0};
int tot,ans=0;
scanf("%d",&tot);
while(tot--){
int data1[55]={0};
int data2[55]={0};
int tag[55][55]={0};
int sum[55]={0};
int maxn,maxm,counter=0,tmp=1;
ans=0;
scanf("%d",&maxn);
for(int iter=1;iter<=maxn;iter++){
scanf("%d",&data1[iter]);
data2[iter]=data1[iter];
};
sort(data2+1,data2+1+maxn);
maxm=unique(data2+1,data2+1+maxn)-data2-1;
for(int iter=1;iter<=maxn;iter++){
data1[iter]=lower_bound(data2+1,data2+1+maxm,data1[iter])-data2;
};
for(int iter=1;iter<=maxn;iter++){
if(data1[iter]==tmp){
sum[1]++;
tag[1][sum[1]]=iter;
};
};
for(int ask=1;ask<=50;ask++){
if(!sum[ask]){
continue;
};
for(int iter=1;iter<=sum[ask];iter++){
counter++;
if(counter!=tag[ask][iter]){
ans++;
ans1[ans]=counter;
ans2[ans]=tag[ask][iter];
ans3[ans]=tag[ask][iter]-counter;
for(int fex=counter;fex<=tag[ask][iter];fex++){
data2[fex]=data1[fex];
};
for(int fex=counter+1;fex<=tag[ask][iter];fex++){
data1[fex]=data2[fex-1];
};
data1[counter]=ask;
};
};
tmp++;
for(int iter=counter+1;iter<=maxn;iter++){
if(data1[iter]==tmp){
sum[tmp]++;
tag[tmp][sum[tmp]]=iter;
};
};
};
printf("%d\n",ans);
for(int iter=1;iter<=ans;iter++){
printf("%d %d %d\n",ans1[iter],ans2[iter],ans3[iter]);
};
};
return 0;
};