Utkarsh is forced to play yet another one of Ashish's games. The game progresses turn by turn and as usual, Ashish moves first.

Consider the 2D plane. There is a token which is initially at (0,0). In one move a player must increase either the x coordinate or the y coordinate of the token by exactly k. In doing so, the player must ensure that the token stays within a (Euclidean) distance d from (0,0).

In other words, if after a move the coordinates of the token are (p,q), then p^2 + q^2 ≤ d^2 must hold.

The game ends when a player is unable to make a move. It can be shown that the game will end in a finite number of moves. If both players play optimally, determine who will win.

Input

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

The only line of each test case contains two space separated integers d (1 ≤ d ≤ 10^5) and k (1 ≤ k ≤ d).

Output

For each test case, if Ashish wins the game, print "Ashish", otherwise print "Utkarsh" (without the quotes).

Example

Input


5
2 1
5 2
10 3
25 4
15441 33


Output


Utkarsh
Ashish
Utkarsh
Utkarsh
Ashish

Note

In the first test case, one possible sequence of moves can be

(0, 0) \xrightarrow{Ashish } (0, 1) \xrightarrow{Utkarsh } (0, 2).

Ashish has no moves left, so Utkarsh wins.

<image>
import java.io.*;
import java.util.*;

public class D {
	 
	  public static void main(String[] args) {
	       FastScanner sc = new FastScanner();
	       int t = sc.nextInt();
	       while(t-->0) {
	    	   long d = sc.nextLong();
	    	   long k = sc.nextLong();
	    	   int ans = 0;
	    	   long x = 0,y=0;
	    	   while(true) {
	    		   ans++;
	    		   if(ans%2 == 1) x+=k;
	    		   else y+=k;
	    		   if(x*x+y*y>d*d) break;
	    	   }
	    	   
	    	   boolean a = ans%2 !=1;
	    	   System.out.println(a ? "Ashish":"Utkarsh");
	       }
	  }
	  
	// Till 1e7+7 is feasible to use prime();
		static boolean[] prime(int n){
			  boolean isPrime[] = new boolean[n+1];
			  Arrays.fill(isPrime, true);
			  isPrime[0] = false;
			  isPrime[1] = false;

			  for(int i =2;i*i<=n;i++){
			      if(isPrime[i])
				  for(int j = i+i; j<=n; j+=i){
			         isPrime[j] = false;
				  }
			  }
			  return isPrime;
		}
	  
	  public static int rev(int cur) {
		  int val = 0;
		  while(cur>0) {
			  val *=10;
			  val += cur%10;
			  cur /= 10;
		  }
		  return val;
	  }
	  
	  public static long minMax(long cur) {
		  long min = 10;
		  long max = 0;
		  while(cur>0) {
			  long rem = cur%10;
			  min = Math.min(rem,min);
			  max = Math.max(max,rem);
			  cur/=10;
		  }
		  return min*max;
	  }
	  
	public static long npr(int n, int r) {
			long ans = 1;
			for(int i= 0 ;i<r; i++) {
				ans*= (n-i);
			}
			return ans;
	}
		
	public static double ncr(int n, int r) {
			double ans = 1;
			for(int i= 0 ;i<r; i++) {
				ans*= (n-i);
				ans/= (i+1);
			}
			return ans;
	}
 
	static final Random random = new Random();
	
	static void sort(int[] a) {
		int n = a.length;
		for(int i =0; i<n; i++) {
			int val = random.nextInt(n);
			int cur = a[i];
			a[i] = a[val];
			a[val] = cur;
		}
		Arrays.sort(a);
	}
	
	static void sortl(long[] a) {
		int n = a.length;
		for(int i =0; i<n; i++) {
			int val = random.nextInt(n);
			long cur = a[i];
			a[i] = a[val];
			a[val] = cur;
		}
		Arrays.sort(a);
	}
	
	
	static class FastScanner {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st=new StringTokenizer("");
		String next() {
			while (st == null  || !st.hasMoreTokens()) {
				try {
					st=new StringTokenizer(br.readLine());
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			return st.nextToken();
		}
		String nextLine() { 
            String str = ""; 
            try
            { 
                str = br.readLine(); 
            } 
            catch (IOException e) 
            { 
                e.printStackTrace(); 
            } 
            return str; 
		} 
		int nextInt() {
			return Integer.parseInt(next());
		}
		long[] readArrayl(int n) {
			long[] a=new long[n];
			for (int i=0; i<n; i++) a[i]=nextLong();
			return a;
		}
		int[] readArray(int n) {
			int[] a=new int[n];
			for (int i=0; i<n; i++) a[i]=nextInt();
			return a;
		}
		long nextLong() {
			return Long.parseLong(next());
		}
		double nextDouble() { 
            return Double.parseDouble(next()); 
        } 
	}

}