Polycarp plays a well-known computer game (we won't mention its name). In this game, he can craft tools of two types — shovels and swords. To craft a shovel, Polycarp spends two sticks and one diamond; to craft a sword, Polycarp spends two diamonds and one stick.

Each tool can be sold for exactly one emerald. How many emeralds can Polycarp earn, if he has a sticks and b diamonds?

Input

The first line contains one integer t (1 ≤ t ≤ 1000) — the number of test cases.

The only line of each test case contains two integers a and b (0 ≤ a, b ≤ 10^9) — the number of sticks and the number of diamonds, respectively.

Output

For each test case print one integer — the maximum number of emeralds Polycarp can earn.

Example

Input


4
4 4
1000000000 0
7 15
8 7


Output


2
0
7
5

Note

In the first test case Polycarp can earn two emeralds as follows: craft one sword and one shovel.

In the second test case Polycarp does not have any diamonds, so he cannot craft anything.
import java.util.*;
import java.io.*;
import java.math.*;
 
public class Main {

	private static FastReader fr = new FastReader();
	private static Helper helper = new Helper();
	private static StringBuilder result = new StringBuilder();
 
	public static void main(String[] args) {
		Task solver = new Task();
		solver.solve();
	}
 
	static class Task {
	    
		public void solve() {
		    int nt = fr.ni();
			while(nt-- > 0){
				long stick = fr.nl();
				long diamond = fr.nl();
				if(stick == 0 || diamond == 0){
					result.append(0).append("\n");
					continue;
				}
				result.append(Math.min(stick, Math.min(diamond, (stick+diamond)/3)));
				result.append("\n");
			}
			System.out.println(result);
		}
	}
    
    static class Helper{
		public long[] tiArr(int n, int si){
			long[] arr = new long[n];
			for(int i=si; i<n; i++) arr[i] = fr.nl();
			return arr;
		}
	}
 
	static class FastReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;
		private static PrintWriter pw;
 
		public FastReader() {
			reader = new BufferedReader(new InputStreamReader(System.in));
			pw = new PrintWriter(System.out);
			tokenizer = null;
		}
 
		public String next() {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}
 
		public int ni() {
			return Integer.parseInt(next());
		}
 
		public long nl() {
			return Long.parseLong(next());
		}
 
		public String rl() {
			try {
				return reader.readLine();
			} catch (IOException e) {
				e.printStackTrace();
			}
			return null;
		}
 
		public void print(String str) {
			pw.print(str);
			pw.flush();
		}
	}
}