description: 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] 
solution: import sys,math
  from collections import deque,defaultdict
  import operator as op
  from functools import reduce
  from itertools import permutations
  import heapq
  
  #sys.setrecursionlimit(10**7) 
  # OneDrive\Documents\codeforces
  
  I=sys.stdin.readline
  
  alpha="abcdefghijklmnopqrstuvwxyz"
  
  mod=10**9 + 7
  
  """
  x_move=[-1,0,1,0,-1,1,1,-1]
  y_move=[0,1,0,-1,1,1,-1,-1]
  """
  def ii():
  	return int(I().strip())
  def li():
  	return list(map(int,I().strip().split()))
  def mi():
  	return map(int,I().strip().split())
  
  
  def ncr(n, r):
      r = min(r, n-r)
      numer = reduce(op.mul, range(n, n-r, -1), 1)
      denom = reduce(op.mul, range(1, r+1), 1)
      return numer // denom 
  
  def ispali(s):
  	i=0
  	j=len(s)-1
  
  	while i<j:
  		if s[i]!=s[j]:
  			return False
  		i+=1
  		j-=1
  	return True
  
  
  
  def isPrime(n):
  	if n<=1:
  		return False
  	elif n<=2:
  		return True
  	else:
  		
  		for i in range(2,int(n**.5)+1):
  			if n%i==0:
  				return False
  		return True
  
  def cal(arr,x):
  	n=len(arr)
  	dp=[[-1 for i in range(x+1)] for j in range(n+1)]
  	
  	for i in range(n+1):
  		dp[i][0]=0
  	for i in range(1,n+1):
  		for j in range(1,x+1):
  			if j>=arr[i-1] and dp[i-1][j-arr[i-1]]!=-1:
  				dp[i][j]=dp[i-1][j]+dp[i-1][j-arr[i-1]]
  			else:
  				dp[i][j]=dp[i-1][j]
  	return dp[n][x]
  
  
  
  def main():
  	ans=""
  	for _ in range(ii()):
  		n,s=mi()
  		if n==1:
  			print(s)
  		elif n==1:
  			print(s)
  		else:
  			x=math.ceil(n/2)
  			print(math.floor(s/(n-x+1)))
  
  		
  
  
  		
  
  
  
  
  
  
  
  
  
  		
  
  
  
  		
  
  
  
  
  
  
  
  	
  
  	
  
  
  	
  	
  
  	
  
  
  
  
  	
  
  
   
  		
  
  
  
  
  
  	
  
  	
  
  
  			
  
  
  
  
  
  
  
  
  
  	
  
  
  				
  
  
  	
  
  	
  	
  
  	
  
  
  
  
  	
  
  
  	
  
  
  
  
  		
  	
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  					
  
  if __name__ == '__main__':
  	main()