description: YouKn0wWho has two even integers x and y. Help him to find an integer n such that 1 ≤ n ≤ 2 ⋅ 10^{18} and n mod x = y mod n. Here, a mod b denotes the remainder of a after division by b. If there are multiple such integers, output any. It can be shown that such an integer always exists under the given constraints.
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 10^5) — the number of test cases.
  
  The first and only line of each test case contains two integers x and y (2 ≤ x, y ≤ 10^9, both are even).
  
  Output
  
  For each test case, print a single integer n (1 ≤ n ≤ 2 ⋅ 10^{18}) that satisfies the condition mentioned in the statement. If there are multiple such integers, output any. It can be shown that such an integer always exists under the given constraints.
  
  Example
  
  Input
  
  
  4
  4 8
  4 2
  420 420
  69420 42068
  
  
  Output
  
  
  4
  10
  420
  9969128
  
  Note
  
  In the first test case, 4 mod 4 = 8 mod 4 = 0.
  
  In the second test case, 10 mod 4 = 2 mod 10 = 2.
  
  In the third test case, 420 mod 420 = 420 mod 420 = 0.
solution: //package com.company;
  //Avoid division by decimal digits :). Always try to multiply with whole numbers or fractions instead.
  //if getting wrong answer then use long/double instead of int/float
  //e + e = o; o + o = e; e + o = o;
  //see stuff in a jugaad way... if you are being complicated you are doing it wrong
  //If a=b+1 and b is even, then a∧b=1
  //If there is a statement in the question that it can be proved that ... then it means there is a very very simple logic behind it, and is not a simulation or  dp question.
  //Be confident in Maths you are not that bad at it.
  import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.util.*;
  
  public class Main {
  
      public static void main(String[] args) {
          // write your code here
          FastReader reader = new FastReader();
          int test = reader.nextInt();
  
          for (int o = 0; o < test; o++) {
              long x = reader.nextLong(); long y = reader.nextLong();
              if (y < x) System.out.println(x + y);
              else {
                  long t = (y % x)/2;
                  System.out.println(y - t);
              }
          }
      }
  }
  
  class FastReader
  {
      BufferedReader br;
      StringTokenizer st;
  
      public FastReader()
      {
          br = new BufferedReader(new
                  InputStreamReader(System.in));
      }
  
      String next()
      {
          while (st == null || !st.hasMoreElements())
          {
              try
              {
                  st = new StringTokenizer(br.readLine());
              }
              catch (IOException e)
              {
                  e.printStackTrace();
              }
          }
          return st.nextToken();
      }
  
      int nextInt()
      {
          return Integer.parseInt(next());
      }
  
      long nextLong()
      {
          return Long.parseLong(next());
      }
  
      double nextDouble()
      {
          return Double.parseDouble(next());
      }
  
      String nextLine()
      {
          String str = "";
          try
          {
              str = br.readLine();
          }
          catch (IOException e)
          {
              e.printStackTrace();
          }
          return str;
      }
  }
  
  /** Class for buffered reading int and double values */
  class Reader {
      static BufferedReader reader;
      static StringTokenizer tokenizer;
  
      /** call this method to initialize reader for InputStream */
      static void init(InputStream input) {
          reader = new BufferedReader(
                  new InputStreamReader(input) );
          tokenizer = new StringTokenizer("");
      }
  
      /** get next word */
      static String next() throws IOException {
          while ( ! tokenizer.hasMoreTokens() ) {
              //TODO add check for eof if necessary
              tokenizer = new StringTokenizer(
                      reader.readLine() );
          }
          return tokenizer.nextToken();
      }
  
      static int nextInt() throws IOException {
          return Integer.parseInt( next() );
      }
  
      static double nextDouble() throws IOException {
          return Double.parseDouble( next() );
      }
  }