You are given two integers a and m. Calculate the number of integers x such that 0 ≤ x < m and \gcd(a, m) = \gcd(a + x, m).

Note: \gcd(a, b) is the greatest common divisor of a and b.

Input

The first line contains the single integer T (1 ≤ T ≤ 50) — the number of test cases.

Next T lines contain test cases — one per line. Each line contains two integers a and m (1 ≤ a < m ≤ 10^{10}).

Output

Print T integers — one per test case. For each test case print the number of appropriate x-s.

Example

Input


3
4 9
5 10
42 9999999967


Output


6
1
9999999966

Note

In the first test case appropriate x-s are [0, 1, 3, 4, 6, 7].

In the second test case the only appropriate x is 0.
/*
    Those who cannot remember the past are condemned to repeat it.
                                            - Dynamic Programming
    
    I never lose, I either win or I learn.
                - Competitive Programming

*/

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;

public class TaskD {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        PrintWriter pw = new PrintWriter(System.out);

        int t = Integer.parseInt(br.readLine());
        while(t-->0) {
            st = new StringTokenizer(br.readLine());
            long a = Long.parseLong(st.nextToken());
            long m = Long.parseLong(st.nextToken());
            m /= gcd(a,m);
            pw.println(phi(m));
        }

        
        
        
        
        
        
        
        pw.flush();
        pw.close();
    }

    static long gcd(long a, long b) {
        return b==0?a:gcd(b,a%b);
    }

    static long phi(long x) {
        long phi = x;
        for(long i=2 ; i*i<=x ; i++) {
            if(x%i == 0) {
                while(x%i == 0) {
                    x /= i;
                }
                phi = phi/i*(i-1);
            }
        }
        if(x > 1) {
            phi = phi/x*(x-1);
        }
        return phi;
    }
}
