There are n students standing in a circle in some order. The index of the i-th student is p_i. It is guaranteed that all indices of students are distinct integers from 1 to n (i. e. they form a permutation).

Students want to start a round dance. A clockwise round dance can be started if the student 2 comes right after the student 1 in clockwise order (there are no students between them), the student 3 comes right after the student 2 in clockwise order, and so on, and the student n comes right after the student n - 1 in clockwise order. A counterclockwise round dance is almost the same thing — the only difference is that the student i should be right after the student i - 1 in counterclockwise order (this condition should be met for every i from 2 to n). 

For example, if the indices of students listed in clockwise order are [2, 3, 4, 5, 1], then they can start a clockwise round dance. If the students have indices [3, 2, 1, 4] in clockwise order, then they can start a counterclockwise round dance.

Your task is to determine whether it is possible to start a round dance. Note that the students cannot change their positions before starting the dance; they cannot swap or leave the circle, and no other student can enter the circle. 

You have to answer q independent queries.

Input

The first line of the input contains one integer q (1 ≤ q ≤ 200) — the number of queries. Then q queries follow.

The first line of the query contains one integer n (1 ≤ n ≤ 200) — the number of students.

The second line of the query contains a permutation of indices p_1, p_2, ..., p_n (1 ≤ p_i ≤ n), where p_i is the index of the i-th student (in clockwise order). It is guaranteed that all p_i are distinct integers from 1 to n (i. e. they form a permutation).

Output

For each query, print the answer on it. If a round dance can be started with the given order of students, print "YES". Otherwise print "NO".

Example

Input


5
4
1 2 3 4
3
1 3 2
5
1 2 3 5 4
1
1
5
3 2 1 5 4


Output


YES
YES
NO
YES
YES

import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.*;
import java.util.StringTokenizer;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.math.*;
/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 */
 
 
 
public class Main {
	
	static int k;
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader();
        PrintWriter out = new PrintWriter(outputStream);
        TaskC solver = new TaskC();
        solver.solve(1, in, out);
        out.close();
    }
 
    static class TaskC {
        public void solve(int testNumber, InputReader in, PrintWriter out) {
        	int t=in.nextInt();
        	for(int _t=0;_t<t;_t++) {
        		int n=in.nextInt();
        		int[] a=new int[n+1];
        		int s=0;
        		int e=0;
        		for(int i=1;i<=n;i++) {
        			a[i]=in.nextInt();
        			if(a[i]==1) {
        				s=i;
        			}
        			if(a[i]==n)
        				e=i;
        		}
        		if(a[s]+1==a[(s+1)%n]) {
        			int c=0;
        			for(int i=1;i<n;i++) {
        				if(a[s]+1!=a[(s+i)%n])
        					c=1;
        			}
        			if(c==1)
        				System.out.println("YES");
        			else
        				System.out.println("NO");
        		}
        		else if(a[e]-1==a[(e+1)%n]) {
        			int c=0;
        			for(int i=1;i<n;i++) {
        				if(a[e]-1!=a[(e+i)%n])
        					c=1;
        			}
        			if(c==1)
        				System.out.println("YES");
        			else
        				System.out.println("NO");
        		}
        		else {
        			System.out.println("NO");
        		}
        		
        		
        		
        	}
        }
    }
   
    	
    static long moduloMultiplication(long a, long b, long mod) {
    	long res = 0;   
    	a %= mod; 

    	while (b > 0) {
		if ((b & 1) > 0) { 
    			res = (res + a) % mod; 
    		} 
    		a = (2 * a) % mod; 
    		b >>= 1;
    	} 
    	return res; 
    } 
    static class InputReader
    {
        BufferedReader br;
        StringTokenizer st;
 
        public InputReader()
        {
            br = new BufferedReader(new
                     InputStreamReader(System.in));
        }
 
        String next()
        {
            while (st == null || !st.hasMoreElements())
            {
                try
                {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e)
                {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }
   
        int nextInt()
        {
            return Integer.parseInt(next());
        }
 
        long nextLong()
        {
            return Long.parseLong(next());
        }
 
        double nextDouble()
        {
            return Double.parseDouble(next());
        }
 
        String nextLine()
        {
            String str = "";
            try
            {
                str = br.readLine();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            return str;
        }
    
    }
    

   
    
}