Our hero - Maga is going to make a new contest for making the best teams. He is really excited about it. There will be S students in the contest. First N students in the final standings will be awarded. 

He has a list( favourite students list ) what contains the best students in informatics Olympiad. His favorite students list contains M students. Though he is excited about the contest, he will enjoy it only if at least K of students from his favourite students list are awarded. He is wondering what are the chances of that happening. He needs your help. Tell him the probability that he will enjoy. It is known that each student has equal chance of being awarded.

Input:
First line of input contains a single integer T, the number of test cases.
In the next T lines, you are given 4 separated integers, S, N, M and K.

Output:
For each test case, output the required probability with 6 digits after floating point.

Constraints:
1 ≤ T ≤ 100
1 ≤ S ≤ 1000
1 ≤ N ≤ S
1 ≤ M ≤ S
0 ≤ K ≤ M

SAMPLE INPUT
3
10 10 5 3
10 4 6 4
3 2 2 1

SAMPLE OUTPUT
1.000000
0.071429
1.000000
matrix = [[0 for x in range(1007)] for x in range(1007)]
n=int(1001)
k=int(1001)
for i in range(0,n+1):
	temp=min(i,k)
	temp=temp+1
	for j in range(0,temp):
		if(j==0):
			matrix[i][j]=1
		elif(j==i):
			matrix[i][j]=1
		else:
			matrix[i][j]=matrix[i-1][j-1]+matrix[i-1][j]
testcase=raw_input()
testcase=int(testcase)
for i in range(0,testcase):
	s,n,m,k1=raw_input().split()
	s=int(s)
	n=int(n)
	m=int(m)
	k1=int(k1)
	y=0
	for k in range(k1,m+1):
		temp=matrix[m][k]*matrix[s-m][n-k]
		y=y+temp
	x=matrix[s][n]
	y=float(y)
	x=float(x)
	ans=y/x
	round(ans,6)
	print ("%.6f" % ans)