You are given two positive integers n and s. Find the maximum possible median of an array of n non-negative integers (not necessarily distinct), such that the sum of its elements is equal to s.

A median of an array of integers of length m is the number standing on the ⌈ {m/2} ⌉-th (rounding up) position in the non-decreasing ordering of its elements. Positions are numbered starting from 1. For example, a median of the array [20,40,20,50,50,30] is the ⌈ m/2 ⌉-th element of [20,20,30,40,50,50], so it is 30. There exist other definitions of the median, but in this problem we use the described definition.

Input

The input consists of multiple test cases. The first line contains a single integer t (1 ≤ t ≤ 10^4) — the number of test cases. Description of the test cases follows.

Each test case contains a single line with two integers n and s (1 ≤ n, s ≤ 10^9) — the length of the array and the required sum of the elements.

Output

For each test case print a single integer — the maximum possible median.

Example

Input


8
1 5
2 5
3 5
2 1
7 17
4 14
1 1000000000
1000000000 1


Output


5
2
2
0
4
4
1000000000
0

Note

Possible arrays for the first three test cases (in each array the median is underlined):

  * In the first test case [\underline{5}] 
  * In the second test case [\underline{2}, 3] 
  * In the third test case [1, \underline{2}, 2] 
import java.util.*;
import java.lang.*;
import java.io.*;

public class A_Median_Maximization
{
	public static void main (String[] args) throws java.lang.Exception
	{
		// your code goes here
		
		FastReader s = new FastReader();
		
		int t = s.nextInt();
		
		while(t-- != 0){
		    long n = s.nextLong();
            long sum = s.nextLong();

            long l = -1;
            long r = 1000000001;

            while(r-l > 1){
                // System.out.println(r+" "+l);
                if(ans(l,r,n,sum) == 0){
                    r = (r+l)/2;
                }
                else{
                    l = (r+l)/2;
                }
            }

            System.out.println(l);
			
		}
	}

    public static int ans(long l,long r, long n, long sum){
        long m = (r+l)/2;

        // System.out.println(((n/2)+1)*m);

        long sol = ((n/2)+1)*m;

        // System.out.println(sol);

        if(sol <= sum){
            return 1;
        }
        else{
            return 0;
        }
    }
	
	public static int ans(long l, long r, long v){
		
//		System.out.println((r-l)/2);
		
		long m = (r+l)/2;
		
//		System.out.println(m);
		
		if(((46*(m*m))+(6*m)+4)>=v){
			return 1;
		}
		else{
			return 0;
		}
	}
	
	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; 
        } 
    } 
}

