题目
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define fi first
#define se second
#define lson p << 1
#define rson p << 1 | 1
const int maxn = 1e6 + 5, inf = 1e18, maxm = 4e4 + 5, base = 397;
const int mod = 1e9 + 7;
// const __int128 mod = 212370440130137957LL;
const int N = 1e6;
// int a[1005][1005];
int a[maxn], b[maxn];
bool vis[maxn];
int n, m;
string s;
struct Node{
// int val, id;
// bool operator<(const Node &u)const{
// return val < u.val;
// }
int a, b;
bool operator<(const Node &u)const{
return b < u.b;
}
}c[maxn];
int ans[maxn], pre[maxn];
int calc(int x){
string s = to_string(x);
auto[pmn, pmx] = minmax_element(s.begin(), s.end());
return *pmx - *pmn;
}
void solve(){
int res = 0;
int k, q;
int l, r;
cin >> l >> r;
int pw = 1;
res = l;
for(int i = 1; i <= 19; i++){//得19次,18次就WA
for(int j = 0; j < 10; j++){
int x = l / pw * pw + (pw - 1) / 9 * j;
// cout << x << ' ' << calc(x) << '\n';
if(x >= l && x <= r && calc(x) < calc(res)){
res = x;
}
x = r / pw * pw + (pw - 1) / 9 * j;
// cout << x << ' ' << calc(x) << '\n';
if(x >= l && x <= r && calc(x) < calc(res)){
res = x;
}
}
pw *= 10;
}
cout << res << '\n';
/*
l:1111999
r:1112200
对于l,按照这个算法(答案是l或r的前缀拼接上k个相同的数字),只会算到x = 1112222,但是比r大了,无效
显然1112111是更优的,这个算法不能通过l得到1112111,但是能通过r得到
*/
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
int T = 1;
cin >> T;
while (T--)
{
solve();
}
return 0;
}