Sonu and Monu are good friends. One day, Sonu gave a binary string of length L to Monu, and asks Monu to pick two positions a and b in the string. Now he given a number P to Monu and he have to tell what are the chances that there will be 1 on both positions and  |a-b| ≤ P

Note: Binary String means which contains only 1 and 0.

INPUT:

First line contains T, the number of testcases. For each test-case, first line consists of two space separated integer L and P, second line consist a string of length L.

OUTPUT:

T lines contains the changes in fraction. If changes are 0, print 0/1

Constraints:

1 ≤ T ≤ 100000

1 ≤ L ≤ 100000

1 ≤ P ≤ L

SAMPLE INPUT
2
4 3
1011
4 1
1011

SAMPLE OUTPUT
9/16
5/16

Explanation

For test case 1, out of 16 choices, 9 pairs of (a, b) satisfies the condition.
    (0,0), (0,2), (0,3), (2,0), (2,2), (2,3), (3,0), (3,2), (3,3)
def gcd(a, b):
    while b:
        a, b = b, a % b
    return a

t = int(raw_input())
for tt in range(t) :
	l,p = [int(i) for i in raw_input().split()]
	a = [int(i) for i in raw_input()]
	ii = 0
	count = []
	for e in a :
		if e == 1 :
			ii += 1
			count.append(ii)
		else  :
			count.append(ii)
	ans = 0
	for i in range(l) :
		if a[i] == 1 :
			s = 0
			e = count[l-1]
			if i-p > 0 :
				s = count[i-p-1]
			if i+p < l :
				e = count[i+p]
			ans += (e-s)
	x = gcd(ans,l*l)
	if x <= 1 :
		print str(ans) + "/" + str(l*l)
	else :
		print str(ans/x) + "/" + str(l*l/x)