Vova plans to go to the conference by train. Initially, the train is at the point $1$ and the destination point of the path is the point $L$. The speed of the train is $1$ length unit per minute (i.e. at the first minute the train is at the point $1$, at the second minute — at the point $2$ and so on).

There are lanterns on the path. They are placed at the points with coordinates divisible by $v$ (i.e. the first lantern is at the point $v$, the second is at the point $2v$ and so on).

There is also exactly one standing train which occupies all the points from $l$ to $r$ inclusive.

Vova can see the lantern at the point $p$ if $p$ is divisible by $v$ and there is no standing train at this position ($p \not\in [l; r]$). Thus, if the point with the lantern is one of the points covered by the standing train, Vova can't see this lantern.

Your problem is to say the number of lanterns Vova will see during the path. Vova plans to go to $t$ different conferences, so you should answer $t$ independent queries.


-----Input-----

The first line of the input contains one integer $t$ ($1 \le t \le 10^4$) — the number of queries.

Then $t$ lines follow. The $i$-th line contains four integers $L_i, v_i, l_i, r_i$ ($1 \le L, v \le 10^9$, $1 \le l \le r \le L$) — destination point of the $i$-th path, the period of the lantern appearance and the segment occupied by the standing train.


-----Output-----

Print $t$ lines. The $i$-th line should contain one integer — the answer for the $i$-th query.


-----Example-----
Input
4
10 2 3 7
100 51 51 51
1234 1 100 199
1000000000 1 1 1000000000

Output
3
0
1134
0



-----Note-----

For the first example query, the answer is $3$. There are lanterns at positions $2$, $4$, $6$, $8$ and $10$, but Vova didn't see the lanterns at positions $4$ and $6$ because of the standing train.

For the second example query, the answer is $0$ because the only lantern is at the point $51$ and there is also a standing train at this point.

For the third example query, the answer is $1134$ because there are $1234$ lanterns, but Vova didn't see the lanterns from the position $100$ to the position $199$ inclusive.

For the fourth example query, the answer is $0$ because the standing train covers the whole path.

Difficulty: introductory

Starter code:

Solutions:
t = int(input())
for i in range(t):
    d,v,l,r = list(map(int, input().split()))
    ans = d // v
    ans -= r//v - (l-1)//v
    print(ans)


t = int(input())
for _ in range(t):
	li, v, l, r = list(map(int, input().split()))
	print(li//v+(l-1)//v-r//v)


t=int(input())
for i in range(t):
    L,v,l,r=map(int,input().split())
    print((l-1)//v+(L-((r//v)*v))//v)

t=int(input())
alfa=[]
for i in range(t):
    ll,v,l,r=list(map(int,input().split()))
    ans=ll//v
    ans-=(r)//v- (l-1)//v
    alfa.append(str(ans))
print('\n'.join(alfa))
    


t=int(input())
for i in range(t):
    L,v,l,r=map(int,input().split())
    print(L//v+(l-1)//v-r//v)

def main():
    t = int(input())
    for _ in range(t):
        L, v, l, r = list(map(int, input().split()))
        numbefore = (l-1)//v
        numduring = r//v
        numafter = L//v
        print(numafter - (numduring - numbefore))

def __starting_point():
    main()

__starting_point()

for _ in range(int(input())):
    dest,v,l,r=map(int,input().split())
    tot=dest//v 
    upto_l=(l-1)//v
    upto_r=r//v 
    print(tot-(upto_r-upto_l))

#JMD
#Nagendra Jha-4096

 
import sys
import math

#import fractions
#import numpy
 
###File Operations###
fileoperation=0
if(fileoperation):
    orig_stdout = sys.stdout
    orig_stdin = sys.stdin
    inputfile = open('W:/Competitive Programming/input.txt', 'r')
    outputfile = open('W:/Competitive Programming/output.txt', 'w')
    sys.stdin = inputfile
    sys.stdout = outputfile

###Defines...###
mod=1000000007
 
###FUF's...###
def nospace(l):
    ans=''.join(str(i) for i in l)
    return ans
 
 
 
##### Main ####
t=int(input())
for tt in range(t):
    #n=int(input())
    #a=list(map(int,sys.stdin.readline().split(' ')))
    d,v,l,r= map(int, sys.stdin.readline().split(' '))
    total=d//v
    v1=r//v
    v2=l//v
    if(l%v!=0):
        v2+=1
    total-=(v1-v2+1)
    print(total)
#####File Operations#####
if(fileoperation):
    sys.stdout = orig_stdout
    sys.stdin = orig_stdin
    inputfile.close()
    outputfile.close()

n = int(input())
for i in range(n):
    L, v, l, r = list(map(int, input().split()))
    count = L // v - (r // v - (l - 1) // v)
    print(count)


t = int(input())
for i in range(t):
    l,v,l2,r = list(map(int,input().split()))
    l2 -= 1
    num = l2 // v
    num2 = r // v
    print( l // v + num - num2)


n = int(input())

for i in range(n):
	L,v,l,r = map(int,input().split())
	print(L//v - (r//v - (l-1)//v))

n = int(input())
for q in range(n):
    L, v, l, r = list(map(int, input().split()))
    ac = L // v
    lc = l // v + (0 if l % v == 0 else 1)
    rc = r // v
    print(ac - (rc - lc + 1))


t = int( input() )
while t > 0:
    t -= 1
    L, v, l, r = list(map( int, input().split() ))
    n = L // v - ( r // v ) + ( ( l - 1 ) // v )
    print( n )


for t in range(int(input())):
	L,v,l,r = list(map(int,input().split()))
	ans = L//v- r//v+(l-1)//v
	print(ans)


t=int(input())
for t in range(t):
    L,v,l,r=map(int,input().split())
    otv = L//v - r//v + l//v
    if l%v==0:
        print(otv - 1)
    else:
        print(otv)

import sys
#sys.stdin = open("in.txt", "r")

t = int(input())

for _ in range(t):
    L, v, l, r = list(map(int, input().split()))
    n1 = (l-1) // v
    n2 = r // v
    print(L // v - (n2 - n1))


t=int(input())

for i in range(t):
    L, u, l, r = map(int,input().split())
    d=0
    print(L//u - (r//u-(l-1)//u))

t = int(input())
for i in range(t):
	L,v,l,r = list(map(int,input().split()))
	q = L // v
	l1 = (l + v - 1) // v
	r1 = r // v
	print(q - r1 + l1 - 1)


t = int(input())
for i in range(t):
    L, u, l, r = list(map(int,input().split()))
    a = L//u-(r//u-(l-1)//u+1)
    print(a+1)



def mi():
	return list(map(int, input().split()))

'''
4
10 2 3 7
100 51 51 51
1234 1 100 199
1000000000 1 1 1000000000
'''

for _ in range(int(input())):
	L,v,l,r = mi()
	cl = l
	if cl>v and cl%v:
		cl-=(cl)%v
		cl+=v
	elif cl<v:
		cl = v
	cr = r
	if cr>v:
		cr-=(cr%v)

	print(max(0,L//v-((cr-cl)//v+1)))


from math import *
t=int(input())
for z in range(t):
    l,v,x,y=map(int,input().split())
    ans=l//v
    if(x%v==0):
        ans-=(y//v-x//v+1)
    else:
        ans-=(y//v-x//v) 
    print(ans)

import sys
t=int(sys.stdin.readline())
for i in range(t):
    d,v,l,r=list(map(int,sys.stdin.readline().strip().split()))
    x=int(d/v)
    y=int(r/v)-int((l-1)/v)
    if(l==r and l%v==0):
        y=1
    print(x-y)

# cook your dish here
for _ in range(int(input())):
    L,v,l,r = list(map(int,input().split()))
    ans = L//v - (r//v - (l-1)//v)
    print(ans)


cases = int(input())
for case in range(cases):
    L, v, l, r = [int(i) for i in input().split()]
    see_l = (l - 1)//v
    see_L = L//v
    see_r = r//v
    print(see_L+see_l-see_r)

tc = int(input())
for i in range(tc):
	x = input().split(" ")
	L = int(x[0])
	v = int(x[1])
	l = int(x[2])
	r = int(x[3])
	print(L//v - r//v + (l-1)//v)