func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( O2 )   using namespace std;   inline long long input() {     long long n;     cin >> n;     return n;   }   string base2(long long n) {     string a =   ;     while (n >= 2) {       a += (char)(n % 2 +  0 );       n /= 2;     }     a += (char)(n +  0 );     reverse((a).begin(), (a).end());     return a;   }   const int MAXN = 1e6 + 10;   const int MOD = 1e9 + 7;   const int MOD2 = 998244353;   const long long INF = 8e18;   long long pw(long long a, long long b) {     return (!b ? 1                : (b & 1 ? (a * pw(a * a % MOD, b / 2)) % MOD                         : pw(a * a % MOD, b / 2)));   }   int cnt[256], p[256];   int main() {     ios::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     ;     int q;     cin >> q;     while (q--) {       for (int i = 0; i < 256; i++) {         cnt[i] = 0;         p[i] = 0;       }       string s, s2, t;       cin >> s >> s2;       int n = (int)s.size();       for (int i = 0; i < n; i++) {         p[(int)s[i]] = i;         cnt[(int)s[i]]++;       }       for (int i = 0; i < 256; i++) {         for (int j = 0; j < cnt[i]; j++) {           t += string(1, i);         }       }       for (int i = 0; i < n; i++) {         if (s[i] != t[i]) {           swap(s[i], s[p[(int)t[i]]]);           break;         }       }       if (s >= s2) {         cout <<  ---               <<   n ;       } else {         cout << s <<   n ;       }     }     return 0;   }   