Unlucky Numbers
Contest: Codeforces Round 861 (Div. 2)
Difficulty rating: 1900
Tags: brute force, dp, greedy, implementation

In this problem, unlike problem A, you need to look for unluckiest number, not the luckiest one.

Note that the constraints of this problem differ from such in problem A.

Olympus City recently launched the production of personal starships. Now everyone on Mars can buy one and fly to other planets inexpensively.

Each starship has a number —some positive integer $$$x$$$. Let's define the luckiness of a number $$$x$$$ as the difference between the largest and smallest digits of that number. For example, $$$142857$$$ has $$$8$$$ as its largest digit and $$$1$$$ as its smallest digit, so its luckiness is $$$8-1=7$$$. And the number $$$111$$$ has all digits equal to $$$1$$$, so its luckiness is zero.

Hateehc is a famous Martian blogger who often flies to different corners of the solar system. To release interesting videos even faster, he decided to buy himself a starship. When he came to the store, he saw starships with numbers from $$$l$$$ to $$$r$$$ inclusively. While in the store, Hateehc wanted to find a starship with the unluckiest number.

Since there are a lot of starships in the store, and Hateehc can't program, you have to help the blogger and write a program that answers his question.

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

Each of the following $$$t$$$ lines contains a description of the test case. The description consists of two integers $$$l$$$, $$$r$$$ ($$$1 \le l \le r \le 10^{18}$$$) — the largest and smallest numbers of the starships in the store.

Output format:
Print $$$t$$$ lines, one line for each test case, containing the unluckiest starship number in the store.

If there are several ways to choose the unluckiest number, output any of them.

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

Note:
Let's look at two test examples:

- the luckiness of the number $$$59$$$ is $$$9 - 5 = 4$$$;
- the luckiness of $$$60$$$ equals $$$6 - 0 = 6$$$;
- the luckiness of $$$61$$$ equals $$$6 - 1 = 5$$$;
- the luckiness of $$$62$$$ equals $$$6 - 2 = 4$$$;
- the luckiness of $$$63$$$ is $$$6 - 3 = 3$$$.

In the fifth test case, the unluckiest numbers are $$$1$$$, $$$2$$$, $$$3$$$, $$$4$$$, $$$5$$$, $$$6$$$, $$$7$$$, $$$8$$$, $$$9$$$, $$$11$$$, $$$22$$$, $$$33$$$, $$$44$$$, $$$55$$$, $$$66$$$, $$$77$$$, $$$88$$$, $$$99$$$, so you are allowed to choose any of them.

Example input:
5
59 63
42 49
48 53
90 90
1 100

Example output:
63
44
53
90
1

Editorial:
Check all pairs ($$$l$$$, $$$r$$$) — the minimum and maximum digits of the number from the answer. Discard the common prefix of $$$l$$$ and $$$r$$$. Now we are left with some digits $$$a$$$ and $$$b$$$ as the leftmost digits of the number, with $$$a$$$ < $$$b$$$. If $$$b - a \geq 2$$$, then we can put $$$a + 1$$$ at the beginning of the number, and then put any digit from the interval $$$[l, r]$$$.
Otherwise, we try $$$a$$$, and then always put the largest digit of $$$[l, r]$$$ that we can. Similarly, then try putting $$$b$$$, and then always put the smallest digit of $$$[l, r]$$$ you can.
Of all $$$l$$$ and $$$r$$$, for which it is possible to construct a given number, choose such that $$$r - l$$$ is minimal, and the number constructed at these $$$l$$$ and $$$r$$$.