// 直接判断是不是从小到大的顺序,没有用二叉树。。。
#include<stdio.h>
int main(){
int n;
while(scanf("%d",&n)!=EOF){
while(n--){
int m;
scanf("%d",&m);
int buf[500];
for(int i=0;i<m;i++) scanf("%d",&buf[i]);
int flag=0;
for(int i=1;i<m;i++){ // 判断第一个数
if(buf[0]>buf[i]){flag=1;break;}
}
if(flag==1)printf("No\n");
else{
flag=0;
for(int i=0;i<m-1;i++){ // 判断最后一个数
if(buf[m-1]<buf[i]){flag=1;break;}
}
if(flag==1) printf("No\n");
else{
for(int i=1;i<=m-2;i++){
for(int j=0;j<i;j++){
if(buf[i]<buf[j]){flag=1; break;}
}
for(int j=i+1;j<m;j++){
if(buf[i]>buf[j]){flag=1; break;}
}
}
if(flag==1)printf("No\n");
else printf("Yes\n");
}
}
}
}
return 0;
}