Help in Chef goes left and right

why it is giving WA on test case 1?

#include <bits/stdc++.h>
using namespace std;
void input(long long  a[],int n)
{
    for(int i=0;i<n;i++)
            cin>>a[i];
}
#define pb push_back
#define yes cout<<"YES"<<endl;
#define no cout<<"NO"<<endl;
#define ull unsigned long long
#define ll long long
int dr[8]={2,2,-2,-2,1,-1,1,-1};
int dc[8]={1,-1,1,-1,2,2,-2,-2};


int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int t;
    cin>>t;
    while(t--)
    {
        ll n,k;
        cin>>n>>k;
        ll a[n];
        input(a,n);
        
        if(n==1)
        {
            cout<<"YES"<<endl;
        }
        else
        {
            ll preval=a[0];
            int lf=0,rf=0;
            ll leftval=0,rightal=0;
            int flag=0;
            for(int i=1;i<n;i++)
            {
                if(a[i]<preval && lf==0)
                {
                    rightal=preval;
                    preval=a[i];
                    rf=1;///right flag initialized;
                }
                else if(a[i]>preval && rf==0)
                {
                    
                    leftval=preval;
                    preval=a[i];
                    lf=1;//left flag initialized;
                }
                else if( (a[i]<preval && lf==1)&& a[i]>leftval)
                {
                    rightal=preval;
                    preval=a[i];
                }
                
                
                 
                else if((a[i]>preval && rf==1) && a[i]<rightal)
                {
                    leftval=preval;
                    preval=a[i];
                }
                else 
                {
                    flag=1;
                    
                }
                
            }
            if(flag)cout<<"NO"<<endl;
            else cout<<"YES"<<endl;
        }
        
        
        
        
        
    }
	return 0;
}