description: You are given two integers l and r, l≤ r. Find the largest possible value of a mod b over all pairs (a, b) of integers for which r≥ a ≥ b ≥ l.
  
  As a reminder, a mod b is a remainder we get when dividing a by b. For example, 26 mod 8 = 2.
  
  Input
  
  Each test contains multiple test cases.
  
  The first line contains one positive integer t (1≤ t≤ 10^4), denoting the number of test cases. Description of the test cases follows.
  
  The only line of each test case contains two integers l, r (1≤ l ≤ r ≤ 10^9).
  
  Output
  
  For every test case, output the largest possible value of a mod b over all pairs (a, b) of integers for which r≥ a ≥ b ≥ l.
  
  Example
  
  Input
  
  
  4
  1 1
  999999999 1000000000
  8 26
  1 999999999
  
  
  Output
  
  
  0
  1
  12
  499999999
  
  Note
  
  In the first test case, the only allowed pair is (a, b) = (1, 1), for which a mod b = 1 mod 1 = 0.
  
  In the second test case, the optimal choice is pair (a, b) = (1000000000, 999999999), for which a mod b = 1.
solution: # cook your dish here
  #import sys
  #sys.setrecursionlimit(10**9) 
  ll=lambda:map(int,input().split())
  t=lambda:int(input())
  ss=lambda:input()
  lx=lambda x:map(int,input().split(x))
  yy=lambda:print("YES")
  nn=lambda:print("NO")
  
  from math import log10 ,log2,ceil,factorial as fac,gcd,inf,sqrt,log
  #from itertools import combinations_with_replacement as cs 
  #from functools import reduce
  from bisect import bisect_right as br,bisect_left as bl
  from collections import Counter
  #from math import inf
  
  
  mod=10**9+7
  
  
  
       
  
  for _ in range(t()):
      
  #def f():
      
      
      a,b=ll()
  
      x=b//2+(1 if b%2==0 else 0)
      if 2*a>b:
          print(b-a)
      else:
          print((b-1)//2)
                  
  #f()
      
  
  '''
  3 2 1 1 1 3 2 1
  baca
  
  bac
  1 2 3
  baaccca
  
  abbaccccaba
  
  1 1111
  2 11
  3 11
   
  '''
  
  