Non-coprime Split
Contest: Codeforces Round 895 (Div. 3)
Difficulty rating: 1100
Tags: math, number theory

You are given two integers $$$l \le r$$$. You need to find positive integers $$$a$$$ and $$$b$$$ such that the following conditions are simultaneously satisfied:

- $$$l \le a + b \le r$$$
- $$$\gcd(a, b) \neq 1$$$

or report that they do not exist.

$$$\gcd(a, b)$$$ denotes the greatest common divisor of numbers $$$a$$$ and $$$b$$$. For example, $$$\gcd(6, 9) = 3$$$, $$$\gcd(8, 9) = 1$$$, $$$\gcd(4, 2) = 2$$$.

Input format:
The first line of the input contains an integer $$$t$$$ ($$$1 \le t \le 500$$$) — the number of test cases.

Then the descriptions of the test cases follow.

The only line of the description of each test case contains $$$2$$$ integers $$$l, r$$$ ($$$1 \le l \le r \le 10^7$$$).

Output format:
For each test case, output the integers $$$a, b$$$ that satisfy all the conditions on a separate line. If there is no answer, instead output a single number $$$-1$$$.

If there are multiple answers, you can output any of them.

Constraints:
Time limit: 1.0 s
Memory limit: 256.0 MB

Note:
In the first test case, $$$11 \le 6 + 9 \le 15$$$, $$$\gcd(6, 9) = 3$$$, and all conditions are satisfied. Note that this is not the only possible answer, for example, $$$\{4, 10\}, \{5, 10\}, \{6, 6\}$$$ are also valid answers for this test case.

In the second test case, the only pairs $$$\{a, b\}$$$ that satisfy the condition $$$1 \le a + b \le 3$$$ are $$$\{1, 1\}, \{1, 2\}, \{2, 1\}$$$, but in each of these pairs $$$\gcd(a, b)$$$ equals $$$1$$$, so there is no answer.

In the third sample test, $$$\gcd(14, 4) = 2$$$.

Example input:
11
11 15
1 3
18 19
41 43
777 777
8000000 10000000
2000 2023
1791791 1791791
1 4
2 3
9840769 9840769

Example output:
6 9
-1
14 4
36 6
111 666
4000000 5000000 
2009 7
-1
2 2
-1
6274 9834495

Editorial:
To begin with, let's learn how to solve the problem when $$$l = r$$$. In other words, we need to find a value $$$1 \le a < l$$$ such that $$$\gcd(a, l - a) \neq 1$$$. Notice that $$$\gcd(a, l - a) = \gcd(a, l)$$$. Then it is easy to see that if $$$l$$$ is prime, then $$$\gcd(a, l) = 1$$$ for any $$$1 \le a < l$$$, otherwise any divisor of $$$l$$$ (except $$$1$$$ and $$$l$$$) will work as $$$a$$$. Thus, we can solve the problem when $$$l = r$$$ using the standard algorithm for primality testing in $$$O(\sqrt{r})$$$ time. Next, we can solve the problem in several ways:
1. Sequentially check for primality all numbers from $$$l$$$ to $$$r$$$, and stop and output the answer as soon as we find the first composite number. This works faster than $$$O(r \sqrt r)$$$ because there are no two adjacent prime numbers starting from $$$3$$$, so the answer will be found very quickly.
2. Handle the case $$$l = r$$$ separately. Also, separately consider the case $$$r \le 3$$$, in which the answer is $$$-1$$$. Otherwise, notice that since there are at least $$$2$$$ numbers in the interval $$$[l, r]$$$, there must be an even number in this interval. And for $$$r \ge 4$$$, the maximum even number in the interval, $$$s$$$, will be $$$\ge 4$$$, so for example, $$$a = \frac{s}{2}, b = \frac{s}{2}$$$ will be a valid answer. To find the maximum even number in the interval $$$l < r$$$, we can use the formula $$$r - r \% 2$$$.