// 1.?取?入
// 2.把桶?来?去放球
// 3.?出?果
#include <stdio.h>
#include <string.h>
#define MAXN 15
int ball[MAXN];//A里的球?号
int bucket[2][MAXN];//?个桶
int num[2];//?个桶内当前球的数量
void init() {
    num[0]=num[1]=0;
    memset(ball,0,sizeof(ball));
    memset(bucket,0,sizeof(bucket));
}
void getInput() {
    for(int i=0;i<10;i++) scanf("%d",&ball[i]);
}

int dfs(int no,int bktno) {
    int state=0;
    // printf("%d\n",no);
    if(no>9) return 1;
    int bktno2=(bktno+1)%2;
    if(num[bktno]==0 || ball[no]>bucket[bktno][num[bktno]]) {
        bucket[bktno][++num[bktno]]=ball[no];
        state=dfs(no+1,bktno);
    } else if(num[bktno2]==0 || ball[no]>bucket[bktno2][num[bktno2]]) {
        bucket[bktno2][++num[bktno2]]=ball[no];
        state=dfs(no+1,bktno2);
    } else {
        num[bktno]--;
        if(num[bktno]==0) return 0;
        state=dfs(no-1,bktno2);
    }
    return state;
}

int main() {
#ifdef debug
    freopen("in.txt","r",stdin);
#endif
    int item;
    scanf("%d",&item);
    while(item--) {
        init();
        getInput();
        // for(int i=0;i<10;i++) {
        //     printf("%d ",ball[i]);
        // }
        // printf("\n");
        if(dfs(0,0)) {
            printf("YES\n");
        } else {
            printf("NO\n");
        }
    }
}