#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <vector>
#include <map>
#include <stack>
using namespace std;
const int maxn = 10001;
char a[maxn];
stack<int> p1 , p2;
bool dfs(int index , int n)
{
    for(int i = 0 ; i < 2 ; i ++){
        if(i == 1 && index < n){
            if(!p1.empty() && p1.top() > a[index]){
                return false;
            }else{
                p1.push(index);
                return dfs(index + 1 , n);
            }
        }
        else if(i == 2 && index < n){
            if(!p2.empty() && p2.top() > a[index]){
                return false;
            }else{
                p2.push(index);
                return dfs(index + 1 , n);
            }
        }
    }
}

int main()
{
    #ifdef DoubleQ
    freopen("in.txt" , "r" , stdin);
    #endif // DoubleQ
    int n;
    cin >> n;
    while(n --){
        for(int i = 0 ; i < 10 ; i ++){
            cin >> a[i];
        }


        bool res = dfs(0 , n);
        /*
        for(int i = 0 ; i < n ;i ++){
            for(int j = 0 ; j < m ; j ++){
                cout << g[i][j] << " ";
            }
            cout << endl;
        }
        */
        if(res) cout << "YES" << endl;
        else cout << "NO" << endl;
    }
}