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
/* package codechef; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
import java.math.BigInteger;

/* Name of the class has to be "Main" only if the class is public. */
public class cf579A
{
    public static void main (String[] args) throws Exception
    {
        try
        {
            FastReader sc=new FastReader();
            StringBuffer buf=new StringBuffer();
            int t=sc.nextInt();
            for(int g=0;g<t;g++)
            {
                int n=sc.nextInt();
                int a[]=new int[n+1];
                for(int i=1;i<=n;i++)
                {
                    a[i]=sc.nextInt();
                }
                int f=0,i=0;
                if(n==1)
                    buf.append("YES"+"\n");
                else
                {
                    if(a[2]==(a[1]-1))
                    {
                        for(i=2;a[i]!=1;i++)
                        {
                            if(a[i]!=(a[i-1]-1))
                            {
                                f=1;
                                break;
                            }
                        }
                        if(a[i]!=(a[i-1]-1))
                            f=1;
                        i++;
                        i++;
                        for(;i<n;i++)
                        {
                            if(a[i]!=(a[i-1]-1))
                            {
                                f=1;
                                break;
                            }
                        }
                    }
                    else if(a[2]==(a[1]+1))
                    {
                        for(i=2;a[i]!=n;i++)
                        {
                            if(a[i]!=(a[i-1]+1))
                            {
                                f=1;
                                break;
                            }
                        }
                        if(a[i]!=(a[i-1]+1))
                            f=1;
                        i++;
                        i++;
                        for(;i<n;i++)
                        {
                            if(a[i]!=(a[i-1]+1))
                            {
                                f=1;
                                break;
                            }
                        }
                    }
                    if(f==0)
                        buf.append("YES"+"\n");
                    else
                        buf.append("NO"+"\n");
                }
            }
            System.out.print(buf);
        }
        catch(Exception e)
        {
            System.out.print(e);
        }
        
    }
    static class FastReader
    {
        BufferedReader br;
        StringTokenizer st;
        public FastReader()
        {
            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;
        }
    }
}