You are given a permutation p_1, p_2, ..., p_n. Recall that sequence of n integers is called a permutation if it contains all integers from 1 to n exactly once.

Find three indices i, j and k such that: 

  * 1 ≤ i < j < k ≤ n; 
  * p_i < p_j and p_j > p_k. 

Or say that there are no such indices.

Input

The first line contains a single integer T (1 ≤ T ≤ 200) — the number of test cases.

Next 2T lines contain test cases — two lines per test case. The first line of each test case contains the single integer n (3 ≤ n ≤ 1000) — the length of the permutation p.

The second line contains n integers p_1, p_2, ..., p_n (1 ≤ p_i ≤ n; p_i ≠ p_j if i ≠ j) — the permutation p.

Output

For each test case: 

  * if there are such indices i, j and k, print YES (case insensitive) and the indices themselves; 
  * if there are no such indices, print NO (case insensitive). 



If there are multiple valid triples of indices, print any of them.

Example

Input


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


Output


YES
2 3 4
YES
3 5 6
NO
import java.io.*;
import java.util.*;
import java.math.*;


public class Main {
	static long mod = (long) (1e9+7);
	static InputReader in;
    static PrintWriter out;
    static Debugger deb;  
       
    	public static void main(String args[] ) throws NumberFormatException, IOException  {
			
		in = new InputReader(System.in);
	    out = new PrintWriter(System.out);
	    deb = new Debugger();
	  
	    int T = in.nextInt();
	    while(T-->0) {
	    		int n = in.nextInt();
	    		int[] a = in.nextIntArray(n);
	    		
	    		int[] m1 = new int[n];
	    		int[] m2 = new int[n];
	    		int mi  = 0;
	    		m1[0] = 0;
	    		for(int i=1;i<n;i++) {
	    			if(a[mi] > a[i]) mi  =i;
	    			m1[i] = mi;
	    		}
	    		int mi2 = n-1;
	    		m2[n-1] = n-1;
	    		for(int i=n-2;i>=0;i--) {
	    			if(a[mi2] > a[i]) mi2 = i;
	    			m2[i] = mi2;
	    		}
	    		int f=0;
	    		for(int i=1;i<n-1;i++) {
	    			if(a[i] > a[m1[i]] && a[i] > a[m2[i]]) {
	    				f=1;
	    				out.println("YES");
	    				out.println((m1[i]+1)+" "+(i+1)+" "+(m2[i]+1));
	    				break;
	    			}
	    		}
	    		if(f==0) {
	    			out.println("NO");
	    		}
	    }
    
	    out.close();
	}

    	
/* TC space



 */	
		static class InputReader
	    {
	        private final InputStream stream;
	        private final byte[] buf = new byte[8192];
	        private int curChar, snumChars;
	        private SpaceCharFilter filter;

	        public InputReader(InputStream stream){
	                this.stream = stream;
	        }
	        public int snext(){
                if (snumChars == -1) throw new InputMismatchException();
                if (curChar >= snumChars){
                        curChar = 0;
                        try{
                                snumChars = stream.read(buf);
                        } catch (IOException e){
                                throw new InputMismatchException();
                        }
                        if (snumChars <= 0)
                                return -1;
                }
                return buf[curChar++];
	        }

	        public int nextInt(){
	                int c = snext();
	                while (isSpaceChar(c)){
	                    c = snext();
	                }
	                int sgn = 1;
	                if (c == '-'){
                        sgn = -1;
                        c = snext();
	                }
	                int res = 0;
	                do{
                        if (c < '0' || c > '9')
                                throw new InputMismatchException();
                        res *= 10;
                        res += c - '0';
                        c = snext();
	                } while (!isSpaceChar(c));
	                return res * sgn;
	        }

	        public long nextLong()
	        {
	                int c = snext();
	                while (isSpaceChar(c))
	                {
	                        c = snext();
	                }
	                int sgn = 1;
	                if (c == '-')
	                {
	                        sgn = -1;
	                        c = snext();
	                }
	                long res = 0;
	                do
	                {
	                        if (c < '0' || c > '9')
	                                throw new InputMismatchException();
	                        res *= 10;
	                        res += c - '0';
	                        c = snext();
	                } while (!isSpaceChar(c));
	                return res * sgn;
	        }

	        public int[] nextIntArray(int n)
	        {
	                int a[] = new int[n];
	                for (int i = 0; i < n; i++)
	                {
	                        a[i] = nextInt();
	                }
	                return a;
	        }

	        public long[] nextLongArray(int n)
	        {
	                long a[] = new long[n];
	                for (int i = 0; i < n; i++)
	                {
	                        a[i] = nextLong();
	                }
	                return a;
	        }
	        
	        public ArrayList<Integer> nextArrayList(int n){
	        			ArrayList<Integer> x = new ArrayList<Integer>();
	        			for(int i=0;i<n;i++) {
	        				int v = in.nextInt();
	        				x.add(v);
	        			}
	        			return x;
	        }

	        public String readString()
	        {
	                int c = snext();
	                while (isSpaceChar(c))
	                {
	                        c = snext();
	                }
	                StringBuilder res = new StringBuilder();
	                do
	                {
	                        res.appendCodePoint(c);
	                        c = snext();
	                } while (!isSpaceChar(c));
	                return res.toString();
	        }

	        public String nextLine()
	        {
	                int c = snext();
	                while (isSpaceChar(c))
	                        c = snext();
	                StringBuilder res = new StringBuilder();
	                do
	                {
	                        res.appendCodePoint(c);
	                        c = snext();
	                } while (!isEndOfLine(c));
	                return res.toString();
	        }

	        public boolean isSpaceChar(int c)
	        {
	                if (filter != null)
	                        return filter.isSpaceChar(c);
	                return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
	        }

	        private boolean isEndOfLine(int c)
	        {
	                return c == '\n' || c == '\r' || c == -1;
	        }

	        public interface SpaceCharFilter
	        {
	                public boolean isSpaceChar(int ch);
	        }

	    }
		
		static class Debugger{
			public void n(int x) {
				out.println(x);
			}
			
			public void a(int[] a) {
		        StringBuilder sb = new StringBuilder();
		        for(int i=0;i<a.length;i++) {
		        		sb.append(a[i]+" ");
		        }
		        out.println(sb.toString());
			}
		}
	
		
}


class Pair { 
   int x; 
   long y; 
   long z;
   // Constructor 
   public Pair(int x, long y,long z) 
   { 
       this.x = x; 
       this.y = y; 
       this.z = z;
   } 
	@Override
	public boolean equals(Object o) {
	    if (this == o) return true;
	    if (!(o instanceof Pair)) return false;
	    Pair p = (Pair) o;
	    return x == p.x && y == p.y && z==p.z;
	}	
	@Override
	public int hashCode() {
		return (""+x+"-"+y+"-"+z).hashCode();
	}	
} 
