#include<iostream>
#include<cstring>
#include<set>
using namespace std;
const int N = 2e5+10;
int a[N];
struct node{
	int l,r;
	int maxv;
}tr[N<<2];


int main()
{
	int T;cin>>T;
	while(T--){
		int n;cin>>n;
		for(int i=0;i<n;i++) scanf("%d",&a[i]);
		set<int>s;
		s.insert(a[0]);
		int ok=1;
		for(int i=1;i<n;i++){
		    if(a[i]>a[i-1]){
		        auto it=s.lower_bound(a[i]);
    			it--;
    			if((*it)>a[i-1]){
    				ok=0;
    				break;
    			}
		    }
		    
			else if(a[i]<a[i-1]){
			    auto it=s.upper_bound(a[i]);
			    if((*it)<a[i-1]){
			        ok=0;break;
			    }
			}
			s.insert(a[i]);
		}
		if(ok) puts("YES");
		else puts("NO");
	}
	return 0;	
} 