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: 
  import java.math.BigInteger;
  import java.util.*;
  import java.lang.*;
  
  
  public class geek {
  
  
     public static final int MOD=1000000007;
  
  
  
      public static void main(String[] args) {
          try {
              Scanner s = new Scanner(System.in);
              StringBuffer sb = new StringBuffer();
  
              int t=s.nextInt();
              while (t-->0) {
              /*Map<Integer,ArrayList<Integer>> hm=new HashMap<>();
              for(int i=1;i<=n;i++){
                  hm.put(i,new ArrayList<Integer>());
              }
              for(int i=0;i<2*n;i++){
  
                  int index=s.nextInt();
                  int childrenIndex=s.nextInt();
                  if(childrenIndex!=-1) {
                      hm.get(index).add(childrenIndex);
                  }
              }
              sb.append("Height of the tree : "+TreeNode.heightUtil(hm));
             sb.append("\nSum of the tree : "+TreeNode.sumTreeUtil(hm));
              sb.append("\nInorder traversal : ");
              System.out.println(sb);
  
              TreeNode.inorderUtil(hm);
              System.out.println("\nPreOrder Traversal : ");
              TreeNode.preorderUtil(hm);
              System.out.println("\nPostOrder Traversal : ");
              TreeNode.postOrderUtil(hm);
              System.out.println("\nNo of nodes : "+TreeNode.no_of_nodesUtil(hm));
  
  */
                  int l=s.nextInt();
                  int r=s.nextInt();
                 // System.out.println(999999999%500000000);
  
                  if(l<=(r/2)){
                     if(r%2==0){
                         sb.append((r/2)-1).append("\n");
                     }else{
                         sb.append(r/2).append("\n");
                     }
                  }else{
  
                      sb.append((r%l)+"\n");
  
                  }
  
  
  
  
              }
  
              System.out.println(sb);
  
          } catch (Exception e) {
              System.out.println(e.getCause());
          }
      }
  }