#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int _t = 1;
int a[15],b[15];
int f[15][1050],n,mex;
int dfs(int i,int s,bool d,bool h) {
if(i < 1) {
for(int w = 0;w < mex; ++ w) {
if((s & (1 << w)) == 0) return 0;
}
if((s & (1 << mex))) return 0;
return 1;
}
if(!d && !h && f[i][s] != -1) return f[i][s];
int down = d ? a[i] : 0;
int up = h ? b[i] : 9;
int ans = 0;
for(int v = down;v <= up; ++ v) {
ans += dfs(i-1,s | (1 << v),d && (v == down),h && (v == up));
}
if(!d && !h) f[i][s] = ans;
return ans;
}
void solve() {
ll x, k;
cin >> x >> k;
k += x;
memset(f,-1,sizeof(f));
n = log10(k)+1;
for(int i = 1;i <= n; ++ i) {
a[i] = x % 10;x/=10;
b[i] = k % 10;k/=10;
}
for(int v = 10;v > -1; --v) {
mex = v;
int cnt = dfs(n,0,1,1);
if(cnt) {
cout << v << ' ' << cnt << endl;
break;
}
}
}
signed main() {
cin >> _t;
while(_t--) {
solve();
}
return 0;
}