#include <bits/stdc++.h>
using namespace std;
#define fastIO() ios::sync_with_stdio(false); cin.tie(nullptr);
void solve() {
int n;
cin >> n;
string a, b;
cin >> a >> b;
int pos = 0;
// Find best switching position
while (pos + 1 < n && a[pos + 1] <= b[pos]) {
pos++;
}
// Build smallest string
string result = a.substr(0, pos + 1) + b.substr(pos);
// Count number of valid paths
long long countPaths = 1;
int i = pos - 1;
while (i >= 0 && a[i + 1] == b[i]) {
countPaths++;
i--;
}
cout << result << "\n";
cout << countPaths << "\n";
}
int main() {
fastIO();
int t;
cin >> t;
while (t--) solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGZhc3RJTygpIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShudWxscHRyKTsKCnZvaWQgc29sdmUoKSB7CiAgICBpbnQgbjsKICAgIGNpbiA+PiBuOwoKICAgIHN0cmluZyBhLCBiOwogICAgY2luID4+IGEgPj4gYjsKCiAgICBpbnQgcG9zID0gMDsKCiAgICAvLyBGaW5kIGJlc3Qgc3dpdGNoaW5nIHBvc2l0aW9uCiAgICB3aGlsZSAocG9zICsgMSA8IG4gJiYgYVtwb3MgKyAxXSA8PSBiW3Bvc10pIHsKICAgICAgICBwb3MrKzsKICAgIH0KCiAgICAvLyBCdWlsZCBzbWFsbGVzdCBzdHJpbmcKICAgIHN0cmluZyByZXN1bHQgPSBhLnN1YnN0cigwLCBwb3MgKyAxKSArIGIuc3Vic3RyKHBvcyk7CgogICAgLy8gQ291bnQgbnVtYmVyIG9mIHZhbGlkIHBhdGhzCiAgICBsb25nIGxvbmcgY291bnRQYXRocyA9IDE7CiAgICBpbnQgaSA9IHBvcyAtIDE7CgogICAgd2hpbGUgKGkgPj0gMCAmJiBhW2kgKyAxXSA9PSBiW2ldKSB7CiAgICAgICAgY291bnRQYXRocysrOwogICAgICAgIGktLTsKICAgIH0KCiAgICBjb3V0IDw8IHJlc3VsdCA8PCAiXG4iOwogICAgY291dCA8PCBjb3VudFBhdGhzIDw8ICJcbiI7Cn0KCmludCBtYWluKCkgewogICAgZmFzdElPKCk7CiAgICBpbnQgdDsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgc29sdmUoKTsKICAgIHJldHVybiAwOwp9