// CF_1281B. Azamon Web Services
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;

int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;
        if(s < c){
            cout << s << endl;
            continue;
        }
        int m = s.size();
        int n = c.size();
//        cout << s.compare(c) << endl;
//        cout << c.compare(s) << endl;

        int i = 0, j = 0;
        while(s[i] == c[j]){
            i++, j++;
            if(i>=m || j>=n) break;
        }
        int k = i;
        int a = i;
        char ch = c[j];
        while(s[i] >= ch){
            i++;
            if(i >= m) break;
        }
        int ck = 1;
        if(i < m){
//            printf("i = %d k = %d\n", i, k);
            swap(s[i], s[k]);
            ck = 0;
        }
        else{
//            printf("k = %d m-1 = %d\n", i, m-1);
            swap(s[k], s[m-1]);
            ck = 0;
        }

        if(ck){
            i = a;
            while(s[i] > ch){
                i++;
                if(i >= m) break;
            }
            if(i < m){
//                printf("i = %d k = %d\n", i, k);
                swap(s[i], s[k]);
            }
            else{
//                printf("k = %d m-1 = %d\n", i, m-1);
                swap(s[k], s[m-1]);
            }
        }

        if(c.compare(s) == 1){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B.
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;
string s, c;

int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;

        int r = s.compare(c);
        if(r < 0){
            cout << s << endl;
            continue;
        }
        else if(r == 0){
            cout << "---\n";
            continue;
        }

        int m = s.size();
        int n = c.size();

        int i = 0, j = 0;
        while(s[i] <= c[j]){
            i++, j++;
            if(i>=m || j>=n) break;
        }
        int k = i;
        while(s[i] >= c[j]){
            if(i >= m || j >= n) break;
            i++;
        }
        int ck = 1;
        if(i < m){
            swap(s[i], s[k]);
            ck = 0;
        }

        if(ck){
            i = k;
            while(s[i] > c[j]){
                i++;
                if(i >= m || j >= n) break;
            }
            if(i < m){
                swap(s[i], s[k]);
            }
        }

        if(s < c){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B. Azamon Web Services
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;

int main()
{
    FIO ;
    string s, c;
    cin >> t ;
    while(t--)
    {
        cin >> s >> c;
        int m = s.size();

        for(int i=0; i<m; i++)
        {
            int x = i;
            for(int j=i+1; j<m; j++)
            {
                if(s[j] < s[x]){
                    x = j;
                }
            }
            if(s[x] != s[i])
            {
                swap(s[i], s[x]);
                break;
            }
        }

        if(s < c){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B. Azamon Web Services
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;

int main()
{
    FIO ;
    string s, c;
    cin >> t ;
    while(t--)
    {
        cin >> s >> c;
        int m = s.size();
        int n = c.size();
        int r = s.compare(c);

        if(r < 0){
            cout << s << endl;
            continue;
        }
        else if(r == 0){
            cout << "---" << endl;
            continue;
        }

        int i = 0, j = 0, ck = 1;
        while(s[i] == c[j]){
            i++, j++;
        }
        for(int k=i+1; k<m; k++)
        {
            if(s[k] <= c[j])
            {
                swap(s[i], s[k]);
                if(s < c)
                {
                    cout << s << endl;
                    ck = 0;
                    break;
                }
                swap(s[i], s[k]);
            }
        }
        if(ck){
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B.
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;

int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;
        if(s.compare(c) < 0){
            cout << s << endl;
            continue;
        }

        int m = s.size();
        int n = c.size();

        int i = 0, j = 0;
        while(s[i] <= c[j]){
            i++, j++;
        }
        int k = i;
        int a = i;
        char ch = c[j];
        while(s[i] >= ch){
            i++;
            if(i >= m) break;
        }
        int ck = 1;
        if(i < m){
            swap(s[i], s[k]);
            ck = 0;
        }

        if(ck){
            i = a;
            while(s[i] > ch){
                i++;
                if(i >= m) break;
            }
            if(i < m){
                swap(s[i], s[k]);
            }
        }

        if(c.compare(s) == 1){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B. Azamon Web Services
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;
string s, c;

int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;
        int m = s.size();
        int n = c.size();
        int r = s.compare(c);

        if(r < 0){
            cout << s << endl;
            continue;
        }
        else if(r == 0){
            cout << "---\n";
            continue;
        }

        int i = 0, j = 0;
        while(s[i] <= c[j]){
            i++, j++;
            if(i>=m || j>=n) break;
        }
        for(int k=i+1; k<m; k++)
        {
            if(s[k] <= c[j])
            {
                swap(s[i], s[k]);
                break;
            }
        }
/*
        int k = i;
        while(s[i] >= c[j]){
            if(i >= m || j >= n) break;
            i++;
        }
        int ck = 1;
        if(i < m){
            swap(s[i], s[k]);
            ck = 0;
        }

        if(ck){
            i = k;
            while(s[i] > c[j]){
                i++;
                if(i >= m || j >= n) break;
            }
            if(i < m){
                swap(s[i], s[k]);
            }
        }
*/
        if(s < c){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B. Azamon Web Services
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;

int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;
        int m = s.size();
        int n = c.size();
//        cout << s.compare(c) << endl;
//        cout << c.compare(s) << endl;

        int i = 0, j = 0;
        while(s[i] == c[j]){
            i++, j++;
            if(i>=m || j>=n) break;
        }
        int k = i;
        int a = i;
        char ch = c[j];
        while(s[i] >= ch){
            i++;
            if(i >= m) break;
        }
        int ck = 1;
        if(i < m){
//            printf("i = %d k = %d\n", i, k);
            swap(s[i], s[k]);
            ck = 0;
        }
        else{
//            printf("k = %d m-1 = %d\n", i, m-1);
            swap(s[k], s[m-1]);
            ck = 0;
        }

        if(ck){
            i = a;
            while(s[i] > ch){
                i++;
                if(i >= m) break;
            }
            if(i < m){
//                printf("i = %d k = %d\n", i, k);
                swap(s[i], s[k]);
            }
            else{
//                printf("k = %d m-1 = %d\n", i, m-1);
                swap(s[k], s[m-1]);
            }
        }

        if(c.compare(s) == 1){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B. Azamon Web Services
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;

int main()
{
    FIO ;
    string s, c;
    cin >> t ;
    while(t--)
    {
        cin >> s >> c;
        int m = s.size();

        for(int i=0; i<m; i++)
        {
            int x = i;
            for(int j=i+1; j<m; j++)
            {
                if(s[j] <= s[x]){
                    x = j;
                }
            }
            if(s[x] != s[i])
            {
                swap(s[i], s[x]);
                break;
            }
        }

        if(s < c){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B.
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;

int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;
        int m = s.size();
        int n = c.size();
//        cout << s.compare(c) << endl;
//        cout << c.compare(s) << endl;

        int i = 0, j = 0;
        while(s[i] <= c[j]){
            i++, j++;
        }
        int k = i;
        int a = i;
        char ch = c[j];
        while(s[i] >= ch){
            i++;
            if(i >= m) break;
        }
        int ck = 1;
        if(i < m){
            swap(s[i], s[k]);
            ck = 0;
        }
        else{
            swap(s[k], s[m-1]);
            ck = 0;
        }

        if(ck){
            i = a;
            while(s[i] > ch){
                i++;
                if(i >= m) break;
            }
            if(i < m){
                swap(s[i], s[k]);
            }
            else{
                swap(s[k], s[m-1]);
            }
        }

        if(c.compare(s) == 1){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B.
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;

int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;
        int m = s.size();
        int n = c.size();
//        cout << s.compare(c) << endl;
//        cout << c.compare(s) << endl;

        int i = 0, j = 0;
        while(s[i] <= c[j]){
            i++, j++;
        }
        int k = i;
        int a = i;
        char ch = c[j];
        while(s[i] >= ch){
            i++;
            if(i >= m) break;
        }
        int ck = 1;
        if(i < m){
            swap(s[i], s[k]);
            ck = 0;
        }

        if(ck){
            i = a;
            while(s[i] > ch){
                i++;
                if(i >= m) break;
            }
            if(i < m){
                swap(s[i], s[k]);
            }
        }

//        cout << s << " " << c << endl;
//        cout << s.compare(c) << endl;
//        cout << c.compare(s) << endl;

        if(c.compare(s) == 1){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B.
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;
string s, c;

int main()
{
    cin >> t;
    while(t--)
    {
        cin >> s >> c;
        int m = s.size();
        int n = c.size();
        int ck = 0;

        for(int i=0; i<m; i++)
        {
            for(int j=i+1; j<m; j++)
            {
                swap(s[i], s[j]);
                if(s < c){
                    cout << s << endl;
                    ck = 1;
                    break;
                }
                swap(s[i], s[j]);
            }
            if(ck) break;
        }

        if(ck) continue;
        else{
            cout << "---\n";
        }
    }

    return 0;
}

/*
int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;
        if(s.compare(c) < 0){
            cout << s << endl;
            continue;
        }

        int m = s.size();
        int n = c.size();

        int i = 0, j = 0;
        while(s[i] <= c[j]){
            i++, j++;
            if(i>=m || j>=n) break;
        }
        int k = i;
        int a = i;
        char ch = c[j];
        while(s[i] >= ch){
            i++;
            if(i >= m) break;
        }
        int ck = 1;
        if(i < m){
            swap(s[i], s[k]);
            ck = 0;
        }

        if(ck){
            i = a;
            while(s[i] > ch){
                i++;
                if(i >= m) break;
            }
            if(i < m){
                swap(s[i], s[k]);
            }
        }

        if(c.compare(s) == 1){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}
*/


// CF_1281B. Azamon Web Services
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;

int main()
{
    FIO ;
    string s, c;
    cin >> t ;
    while(t--)
    {
        cin >> s >> c;
        int m = s.size();

        int Mn = -100;
        for(int i=0; i<m; i++)
        {
            int x = i, y = s[i];
            for(int j=i+1; j<m ;j++)
            {
                int z = s[j];
                int d = y - z;
                if(s[j] < s[i] && d > Mn){
                    Mn = d;
                    x = j;
                }
            }
            if(x != i)
            {
                swap(s[i], s[x]);
                break;
            }
        }

        if(s < c){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B.
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;

int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;
//        cout << s.compare(c) << endl;
//        cout << c.compare(s) << endl;

        int m = s.size();
        int n = c.size();
//        if(n > m){
//            string t = c.substr(0, m);
//            c = t;
//        }

        int i = 0, j = 0;
        while(s[i] == c[j]){
            i++, j++;
        }
        int k = i;
        char ch = c[j];
        while(s[i] > ch){
            i++;
            if(i >= m) break;
        }
        int ck = 0;
        if(i < m){
            swap(s[i], s[k]);
        }

//        cout << s << " " << c << endl;
//        cout << s.compare(c) << endl;
//        cout << c.compare(s) << endl;

        if(c.compare(s) == 1){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B. Azamon Web Services
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;
string s, c;

int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;
        int m = s.size();
        int n = c.size();
        int r = s.compare(c);

        if(r < 0){
            cout << s << endl;
            continue;
        }
        else if(r == 0){
            cout << "---\n";
            continue;
        }

        int i = 0, j = 0;
        while(s[i] <= c[j]){
            i++, j++;
            if(i>=m || j>=n) break;
        }
        for(int k=i+1; k<m; k++)
        {
            if(s[k] < c[j])
            {
                swap(s[i], s[k]);
                break;
            }
        }
/*
        int k = i;
        while(s[i] >= c[j]){
            if(i >= m || j >= n) break;
            i++;
        }
        int ck = 1;
        if(i < m){
            swap(s[i], s[k]);
            ck = 0;
        }

        if(ck){
            i = k;
            while(s[i] > c[j]){
                i++;
                if(i >= m || j >= n) break;
            }
            if(i < m){
                swap(s[i], s[k]);
            }
        }

*/
        if(s < c){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281A.
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;

int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;

        int m = s.size();
        int n = c.size();
        if(n > m){
            string t = c.substr(0, m);
            c = t;
        }

        int i = 0, j = 0;
        while(s[i] == c[j]){
            i++, j++;
        }
        int k = i;
        char ch = c[j];
        while(s[i] >= ch){
            i++;
            if(i >= m) break;
        }
        int ck = 0;
        if(i < m){
            swap(s[i], s[k]);
        }

//        cout << s << " " << c << endl;
//        cout << s.compare(c) << endl;
//        cout << c.compare(s) << endl;

        if(c.compare(s) == 1){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B.
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;

int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;
        if(s.compare(c) < 0){
            cout << s << endl;
            continue;
        }

        int m = s.size();
        int n = c.size();

        int i = 0, j = 0;
        while(s[i] <= c[j]){
            i++, j++;
            if(i>=m || j>=n) break;
        }
        int k = i;
        int a = i;
        char ch = c[j];
        while(s[i] >= ch){
            i++;
            if(i >= m) break;
        }
        int ck = 1;
        if(i < m){
            swap(s[i], s[k]);
            ck = 0;
        }

        if(ck){
            i = a;
            while(s[i] > ch){
                i++;
                if(i >= m) break;
            }
            if(i < m){
                swap(s[i], s[k]);
            }
        }

        if(c.compare(s) == 1){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}


// CF_1281B.
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;
string s, c;

int main()
{
    cin >> t;
    while(t--)
    {
        cin >> s >> c;
        if(s < c){
            cout << s << endl;
            continue;
        }
        int m = s.size();
        int n = c.size();
        int ck = 0;

        for(int i=0; i<m; i++)
        {
            for(int j=i+1; j<m; j++)
            {
                swap(s[i], s[j]);
                if(s < c){
                    cout << s << endl;
                    ck = 1;
                    break;
                }
                swap(s[i], s[j]);
            }
            if(ck) break;
        }

        if(ck) continue;
        else{
            cout << "---\n";
        }
    }

    return 0;
}

/*
int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;
        if(s.compare(c) < 0){
            cout << s << endl;
            continue;
        }

        int m = s.size();
        int n = c.size();

        int i = 0, j = 0;
        while(s[i] <= c[j]){
            i++, j++;
            if(i>=m || j>=n) break;
        }
        int k = i;
        int a = i;
        char ch = c[j];
        while(s[i] >= ch){
            i++;
            if(i >= m) break;
        }
        int ck = 1;
        if(i < m){
            swap(s[i], s[k]);
            ck = 0;
        }

        if(ck){
            i = a;
            while(s[i] > ch){
                i++;
                if(i >= m) break;
            }
            if(i < m){
                swap(s[i], s[k]);
            }
        }

        if(c.compare(s) == 1){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
    }

    return 0;
}
*/


// CF_1281B. Azamon Web Services
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define FIO         ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ALL(v)      v.begin(), v.end()
#define PB          push_back
#define MP          make_pair
#define UB          upper_bound
#define LB          lower_bound
#define PI          2*acos(0.0)
#define MOD         1000000007
#define GCD(a, b)   __gcd(a, b)
#define LCM(a, b)   ((a)*(b)) / GCD(a, b)
#define INPUT       freopen("input.txt", "r", stdin);
#define OUTPUT      freopen("output.txt", "w", stdout);
#define PRINT(a)    for(auto i : a) cout << i << " "; cout << endl;
#define PRINTS(s)   for(auto i=s.begin(); i!=s.end(); i++) cout << *i << " "; cout << endl;
#define PRINTM(m)   for(auto i=m.begin(); i!=m.end(); i++) cout << i->first << " " << i->second << endl;

int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
string lowerCase = "abcdefghijklmnopqrstuvwxyz";
string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

/// Graph moves
const int fxKing[] = {+1,+1,+0,-1,-1,-1,+0,+1}; /// King's move
const int fyKing[] = {+0,+1,+1,+1,+0,-1,-1,-1}; /// King's move
const int fxKnight[] = {+2,+1,-1,-2,-2,-1,+1,+2}; /// Knight's move
const int fyKnight[] = {+1,+2,+2,+1,-1,-2,-2,-1}; /// Knight's move

ll q, t;
string s, c;

int main()
{
    FIO ;
    cin >> t ;
    while(t--)
    {
        string s, c;
        cin >> s >> c;
        int m = s.size();
        int n = c.size();
        int r = s.compare(c);

        if(r < 0){
            cout << s << endl;
            continue;
        }
        else if(r == 0){
            cout << "---\n";
            continue;
        }

        int i = 0, j = 0, ck = 1;
        while(s[i] <= c[j]){
            i++, j++;
            if(i>=m || j>=n) break;
        }
        for(int k=i+1; k<m; k++)
        {
            if(s[k] <= c[j])
            {
                swap(s[i], s[k]);
                if(s < c)
                {
                    cout << s << '\n';
                    ck = 0;
                    break;
                }
                swap(s[i], s[k]);
            }
        }
        if(ck){
            cout << "---\n";
        }
/*
        int k = i;
        while(s[i] >= c[j]){
            if(i >= m || j >= n) break;
            i++;
        }
        if(i < m){
            swap(s[i], s[k]);
            ck = 0;
        }

        if(ck){
            i = k;
            while(s[i] > c[j]){
                i++;
                if(i >= m || j >= n) break;
            }
            if(i < m){
                swap(s[i], s[k]);
            }
        }
        if(s < c){
            cout << s << endl;
        }
        else{
            cout << "---" << endl;
        }
*/
    }

    return 0;
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    // ios;
    while(TESTS--){
        string s,c;
        string tot;
        // char toto[5002];
        // cin>>tot;
        cin>>s>>c;
        ll idx;
        // cout<<s<<endl;
        // getline(cin, tot);
        // cin.getline(toto,5002);
        // for(int i=0;i<strlen(toto);i++){
        //     tot.push_back(toto[i]);
        // }
        // cout<<tot<<endl;
        // return 0;
        // cout<<tot.size()<<endl;
        // return 0;
        // // cout<<tot<<endl;
        // for(int i=0;i<tot.length();i++){
        //     if(isspace(tot[i])){
        //         idx=i;
        //         break;
        //     }
        // }
        // s=tot.substr(0,idx);
        // // cout<<tot<<endl;
        // // cout<<s;
        // // return 0;
        // c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                // cout<<"4";
                // cout<<s[i]<<" "<<c[j]<<endl;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>=s[k] and s[k]<s[i]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        if(c[j]==s[i]){
                            conf=false;
                        }
                        break;
                    }
                }
                // if(eq){
                //     for(int k=i+1;k<ls;k++){
                //         if(c[j]==s[k]and s[k]<s[i]){
                //             swap(s[i],s[k]);
                //             eq=false;
                //             break;
                //         }
                //     }
                // }
            }
            if(eq){
                if(s[i]>c[j])
                eq=false;
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        // cout<<conf;
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                // cout<<"4";
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        // cout<<"4";
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    ios;
    while(TESTS--){
        string s,c;
        cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                if(eq){
                    for(int k=i+1;k<ls;k++){
                        if(c[j]==s[k]and s[k]<s[i]){
                            swap(s[i],s[k]);
                            eq=false;
                            break;
                        }
                    }
                }
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    while(TESTS--){
        string s,c,t;
        cin>>s>>c;
        // sort(t.begin(),t.end());
        bool ans=false;
        int len=s.length();
        int idx;
        // int i=0,j=0,used=0;
        for(int i=0;i<len;i++){
            idx=len;
            char ch=s[i];
            for(int j=len-1;j>i;j--){
                if(ch>s[j]){
                    idx=j;
                    ch=s[j];
                }
            }
            if(idx<len){
                swap(s[i],s[idx]);
                break;
            }
        }
        if(s<c){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }

    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    ios;
    while(TESTS--){
        string s,c;
        string tot;
        cin>>tot;
        // cin>>s>>c;
        ll idx;
        getline(cin, tot);
        for(int i=0;i<tot.length();i++){
            if(tot[i]==' '){
                idx=i;
                break;
            }
        }
        s=tot.substr(0,idx+1);
        // cout<<tot<<endl;
        // cout<<s;
        // return 0;
        c=tot.substr(idx+2,tot.length()-idx-2);
        // cout<<s<<" "<<c;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                if(eq){
                    for(int k=i+1;k<ls;k++){
                        if(c[j]==s[k]and s[k]<s[i]){
                            swap(s[i],s[k]);
                            eq=false;
                            break;
                        }
                    }
                }
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    ios;
    while(TESTS--){
        string s,c;
        string tot;
        // cin>>tot;
        cin>>s>>c;
        ll idx;
        // for(int i=0;i<tot.length();i++){
        //     if(tot[i]==' '){
        //         idx=i;
        //         break;
        //     }
        // }
        // s=tot.substr(0,idx+1);
        // // cout<<tot<<endl;
        // // cout<<s;
        // // return 0;
        // c=tot.substr(idx+2,tot.length()-idx-2);
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                if(eq){
                    for(int k=i+1;k<ls;k++){
                        if(c[j]==s[k]and s[k]<s[i]){
                            swap(s[i],s[k]);
                            eq=false;
                            break;
                        }
                    }
                }
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    ios;
    while(TESTS--){
        string s,c;
        string tot;
        // cin>>tot;
        // cin>>s>>c;
        ll idx;
        getline(cin, tot);
        cout<<tot<<endl;
        // cout<<tot.size()<<endl;
        // return 0;
        // cout<<tot<<endl;
        for(int i=0;i<tot.length();i++){
            if(tot[i]==' '){
                idx=i;
                break;
            }
        }
        s=tot.substr(0,idx);
        // cout<<tot<<endl;
        // cout<<s;
        // return 0;
        c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        // ll ls=s.length(),lc=c.length();
        // if(ls<lc){
        //     if(s==c.substr(0,ls)){
        //         cout<<s<<endl;
        //         continue;
        //     }
        // }
        // // cout<<"a";
        // bool eq=true,conf=false;
        // int i=0,j=0;
        // while(eq){
        //     // if(s[i]==c[j]){
        //     //     i++;j++;
        //     // }
        //     if(s[i]<c[j]){
        //         // i++;
        //         conf=true;
        //         eq=false;
        //     }
        //     else if(s[i]>=c[j]){
        //         // cout<<"YES"<<endl;
        //         for(int k=i+1;k<ls;k++){
        //             // cout<<s[k];
        //             if(c[j]>s[k]){
        //                 // cout<<"YES"<<endl;
        //                 swap(s[i],s[k]);
        //                 eq=false;
        //                 conf=true;
        //                 break;
        //             }
        //         }
        //         if(eq){
        //             for(int k=i+1;k<ls;k++){
        //                 if(c[j]==s[k]and s[k]<s[i]){
        //                     swap(s[i],s[k]);
        //                     eq=false;
        //                     break;
        //                 }
        //             }
        //         }
        //     }
        //     i++;j++;
        //     if(i==ls or j==lc){
        //         eq=false;
        //     }
        // }
        // if(conf){
        //     cout<<s<<endl;
        //     continue;
        // }
        // if(ls<lc){
        //     if(s==c.substr(0,ls)){
        //         cout<<s<<endl;
        //         continue;
        //     }
        // }
        // for(int i=0;i<min(ls,lc);i++){
        //     if(s[i]<c[i]){
        //         conf=true;
        //         break;
        //     }
        //     else if(s[i]>c[i]){
        //         break;
        //     }
        // }
        // if(conf){
        //     cout<<s<<endl;
        // }
        // else{
        //     cout<<"---"<<endl;
        // }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    // ios;
    while(TESTS--){
        string s,c;
        string tot;
        // char toto[5002];
        // cin>>tot;
        cin>>s>>c;
        ll idx;
        // cout<<s<<endl;
        // getline(cin, tot);
        // cin.getline(toto,5002);
        // for(int i=0;i<strlen(toto);i++){
        //     tot.push_back(toto[i]);
        // }
        // cout<<tot<<endl;
        // return 0;
        // cout<<tot.size()<<endl;
        // return 0;
        // // cout<<tot<<endl;
        // for(int i=0;i<tot.length();i++){
        //     if(isspace(tot[i])){
        //         idx=i;
        //         break;
        //     }
        // }
        // s=tot.substr(0,idx);
        // // cout<<tot<<endl;
        // // cout<<s;
        // // return 0;
        // c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                // cout<<"4";
                // cout<<s[i]<<" "<<c[j]<<endl;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                if(eq){
                    for(int k=i+1;k<ls;k++){
                        if(c[j]==s[k]and s[k]<s[i]){
                            swap(s[i],s[k]);
                            eq=false;
                            break;
                        }
                    }
                }
            }
            if(eq){
                if(s[i]>c[j])
                eq=false;
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        // cout<<conf;
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                // cout<<"4";
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        // cout<<"4";
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    ios;
    while(TESTS--){
        string s,c;
        string tot;
        char toto[5002];
        // cin>>tot;
        // cin>>s>>c;
        ll idx;
        // getline(cin, tot);
        cin.getline(toto,5002);
        for(int i=0;i<strlen(toto);i++){
            tot.push_back(toto[i]);
        }
        // cout<<tot<<endl;
        // return 0;
        // cout<<tot.size()<<endl;
        // return 0;
        // cout<<tot<<endl;
        for(int i=0;i<tot.length();i++){
            if(tot[i]==' '){
                idx=i;
                break;
            }
        }
        s=tot.substr(0,idx);
        // cout<<tot<<endl;
        // cout<<s;
        // return 0;
        c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                if(eq){
                    for(int k=i+1;k<ls;k++){
                        if(c[j]==s[k]and s[k]<s[i]){
                            swap(s[i],s[k]);
                            eq=false;
                            break;
                        }
                    }
                }
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    ios;
    while(TESTS--){
        string s,c;
        string tot;
        char toto[5002];
        // cin>>tot;
        // cin>>s>>c;
        ll idx;
        // getline(cin, tot);
        cin.getline(toto,5002);
        for(int i=0;i<strlen(toto);i++){
            tot.push_back(toto[i]);
        }
        // cout<<tot<<endl;
        // return 0;
        // cout<<tot.size()<<endl;
        // return 0;
        // cout<<tot<<endl;
        for(int i=0;i<tot.length();i++){
            if(isspace(tot[i])){
                idx=i;
                break;
            }
        }
        s=tot.substr(0,idx);
        // cout<<tot<<endl;
        // cout<<s;
        // return 0;
        c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                if(eq){
                    for(int k=i+1;k<ls;k++){
                        if(c[j]==s[k]and s[k]<s[i]){
                            swap(s[i],s[k]);
                            eq=false;
                            break;
                        }
                    }
                }
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    ios;
    while(TESTS--){
        string s,c;
        string tot;
        // cin>>tot;
        // cin>>s>>c;
        ll idx;
        getline(cin, tot);
        // cout<<tot<<endl;
        for(int i=0;i<tot.length();i++){
            if(tot[i]==' '){
                idx=i;
                break;
            }
        }
        s=tot.substr(0,idx);
        // cout<<tot<<endl;
        // cout<<s;
        // return 0;
        c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                if(eq){
                    for(int k=i+1;k<ls;k++){
                        if(c[j]==s[k]and s[k]<s[i]){
                            swap(s[i],s[k]);
                            eq=false;
                            break;
                        }
                    }
                }
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    ios;
    while(TESTS--){
        string s,c;
        string tot;
        // char toto[5002];
        // cin>>tot;
        cin>>s>>c;
        ll idx;
        // getline(cin, tot);
        // cin.getline(toto,5002);
        // for(int i=0;i<strlen(toto);i++){
        //     tot.push_back(toto[i]);
        // }
        // cout<<tot<<endl;
        // return 0;
        // cout<<tot.size()<<endl;
        // return 0;
        // // cout<<tot<<endl;
        // for(int i=0;i<tot.length();i++){
        //     if(isspace(tot[i])){
        //         idx=i;
        //         break;
        //     }
        // }
        // s=tot.substr(0,idx);
        // // cout<<tot<<endl;
        // // cout<<s;
        // // return 0;
        // c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                if(eq){
                    for(int k=i+1;k<ls;k++){
                        if(c[j]==s[k]and s[k]<s[i]){
                            swap(s[i],s[k]);
                            eq=false;
                            break;
                        }
                    }
                }
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    // ios;
    while(TESTS--){
        string s,c;
        string tot;
        // char toto[5002];
        // cin>>tot;
        cin>>s>>c;
        ll idx;
        // cout<<s<<endl;
        // getline(cin, tot);
        // cin.getline(toto,5002);
        // for(int i=0;i<strlen(toto);i++){
        //     tot.push_back(toto[i]);
        // }
        // cout<<tot<<endl;
        // return 0;
        // cout<<tot.size()<<endl;
        // return 0;
        // // cout<<tot<<endl;
        // for(int i=0;i<tot.length();i++){
        //     if(isspace(tot[i])){
        //         idx=i;
        //         break;
        //     }
        // }
        // s=tot.substr(0,idx);
        // // cout<<tot<<endl;
        // // cout<<s;
        // // return 0;
        // c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                if(eq){
                    for(int k=i+1;k<ls;k++){
                        if(c[j]==s[k]and s[k]<s[i]){
                            swap(s[i],s[k]);
                            eq=false;
                            break;
                        }
                    }
                }
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    ios;
    while(TESTS--){
        string s,c;
        string tot;
        char toto[5002];
        // cin>>tot;
        // cin>>s>>c;
        ll idx;
        // getline(cin, tot);
        cin.getline(toto,5002);
        for(int i=0;i<strlen(toto);i++){
            tot.push_back(toto[i]);
        }
        // cout<<tot<<endl;
        // return 0;
        // cout<<tot.size()<<endl;
        // return 0;
        // cout<<tot<<endl;
        for(int i=0;i<tot.length();i++){
            if(tot[i]==' '){
                idx=i;
                break;
            }
        }
        s=tot.substr(0,idx);
        // cout<<tot<<endl;
        // cout<<s;
        // return 0;
        c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        // ll ls=s.length(),lc=c.length();
        // if(ls<lc){
        //     if(s==c.substr(0,ls)){
        //         cout<<s<<endl;
        //         continue;
        //     }
        // }
        // // cout<<"a";
        // bool eq=true,conf=false;
        // int i=0,j=0;
        // while(eq){
        //     // if(s[i]==c[j]){
        //     //     i++;j++;
        //     // }
        //     if(s[i]<c[j]){
        //         // i++;
        //         conf=true;
        //         eq=false;
        //     }
        //     else if(s[i]>=c[j]){
        //         // cout<<"YES"<<endl;
        //         for(int k=i+1;k<ls;k++){
        //             // cout<<s[k];
        //             if(c[j]>s[k]){
        //                 // cout<<"YES"<<endl;
        //                 swap(s[i],s[k]);
        //                 eq=false;
        //                 conf=true;
        //                 break;
        //             }
        //         }
        //         if(eq){
        //             for(int k=i+1;k<ls;k++){
        //                 if(c[j]==s[k]and s[k]<s[i]){
        //                     swap(s[i],s[k]);
        //                     eq=false;
        //                     break;
        //                 }
        //             }
        //         }
        //     }
        //     i++;j++;
        //     if(i==ls or j==lc){
        //         eq=false;
        //     }
        // }
        // if(conf){
        //     cout<<s<<endl;
        //     continue;
        // }
        // if(ls<lc){
        //     if(s==c.substr(0,ls)){
        //         cout<<s<<endl;
        //         continue;
        //     }
        // }
        // for(int i=0;i<min(ls,lc);i++){
        //     if(s[i]<c[i]){
        //         conf=true;
        //         break;
        //     }
        //     else if(s[i]>c[i]){
        //         break;
        //     }
        // }
        // if(conf){
        //     cout<<s<<endl;
        // }
        // else{
        //     cout<<"---"<<endl;
        // }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    ios;
    while(TESTS--){
        string s,c;
        string tot;
        // char toto[5002];
        // cin>>tot;
        cin>>s>>c;
        ll idx;
        cout<<s<<endl;
        // getline(cin, tot);
        // cin.getline(toto,5002);
        // for(int i=0;i<strlen(toto);i++){
        //     tot.push_back(toto[i]);
        // }
        // cout<<tot<<endl;
        // return 0;
        // cout<<tot.size()<<endl;
        // return 0;
        // // cout<<tot<<endl;
        // for(int i=0;i<tot.length();i++){
        //     if(isspace(tot[i])){
        //         idx=i;
        //         break;
        //     }
        // }
        // s=tot.substr(0,idx);
        // // cout<<tot<<endl;
        // // cout<<s;
        // // return 0;
        // c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        // bool eq=true,conf=false;
        // int i=0,j=0;
        // while(eq){
        //     // if(s[i]==c[j]){
        //     //     i++;j++;
        //     // }
        //     if(s[i]<c[j]){
        //         // i++;
        //         conf=true;
        //         eq=false;
        //     }
        //     else if(s[i]>=c[j]){
        //         // cout<<"YES"<<endl;
        //         for(int k=i+1;k<ls;k++){
        //             // cout<<s[k];
        //             if(c[j]>s[k]){
        //                 // cout<<"YES"<<endl;
        //                 swap(s[i],s[k]);
        //                 eq=false;
        //                 conf=true;
        //                 break;
        //             }
        //         }
        //         if(eq){
        //             for(int k=i+1;k<ls;k++){
        //                 if(c[j]==s[k]and s[k]<s[i]){
        //                     swap(s[i],s[k]);
        //                     eq=false;
        //                     break;
        //                 }
        //             }
        //         }
        //     }
        //     i++;j++;
        //     if(i==ls or j==lc){
        //         eq=false;
        //     }
        // }
        // if(conf){
        //     cout<<s<<endl;
        //     continue;
        // }
        // if(ls<lc){
        //     if(s==c.substr(0,ls)){
        //         cout<<s<<endl;
        //         continue;
        //     }
        // }
        // for(int i=0;i<min(ls,lc);i++){
        //     if(s[i]<c[i]){
        //         conf=true;
        //         break;
        //     }
        //     else if(s[i]>c[i]){
        //         break;
        //     }
        // }
        // if(conf){
        //     cout<<s<<endl;
        // }
        // else{
        //     cout<<"---"<<endl;
        // }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    // ios;
    while(TESTS--){
        string s,c;
        string tot;
        // char toto[5002];
        // cin>>tot;
        cin>>s>>c;
        ll idx;
        // cout<<s<<endl;
        // getline(cin, tot);
        // cin.getline(toto,5002);
        // for(int i=0;i<strlen(toto);i++){
        //     tot.push_back(toto[i]);
        // }
        // cout<<tot<<endl;
        // return 0;
        // cout<<tot.size()<<endl;
        // return 0;
        // // cout<<tot<<endl;
        // for(int i=0;i<tot.length();i++){
        //     if(isspace(tot[i])){
        //         idx=i;
        //         break;
        //     }
        // }
        // s=tot.substr(0,idx);
        // // cout<<tot<<endl;
        // // cout<<s;
        // // return 0;
        // c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                // cout<<"4";
                // cout<<s[i]<<" "<<c[j]<<endl;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                // if(eq){
                //     for(int k=i+1;k<ls;k++){
                //         if(c[j]==s[k]and s[k]<s[i]){
                //             swap(s[i],s[k]);
                //             eq=false;
                //             break;
                //         }
                //     }
                // }
            }
            if(eq){
                if(s[i]>c[j])
                eq=false;
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        // cout<<conf;
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                // cout<<"4";
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        // cout<<"4";
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    // ios;
    while(TESTS--){
        string s,c;
        string tot;
        // char toto[5002];
        // cin>>tot;
        cin>>s>>c;
        ll idx;
        // cout<<s<<endl;
        // getline(cin, tot);
        // cin.getline(toto,5002);
        // for(int i=0;i<strlen(toto);i++){
        //     tot.push_back(toto[i]);
        // }
        // cout<<tot<<endl;
        // return 0;
        // cout<<tot.size()<<endl;
        // return 0;
        // // cout<<tot<<endl;
        // for(int i=0;i<tot.length();i++){
        //     if(isspace(tot[i])){
        //         idx=i;
        //         break;
        //     }
        // }
        // s=tot.substr(0,idx);
        // // cout<<tot<<endl;
        // // cout<<s;
        // // return 0;
        // c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                // cout<<"4";
                // cout<<s[i]<<" "<<c[j]<<endl;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                if(eq){
                    for(int k=i+1;k<ls;k++){
                        if(c[j]==s[k]and s[k]<s[i]){
                            swap(s[i],s[k]);
                            eq=false;
                            break;
                        }
                    }
                }
            }
            if(!eq){
                if(s[i]>c[j])
                eq=true;
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        // cout<<conf;
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                // cout<<"4";
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        // cout<<"4";
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    ios;
    while(TESTS--){
        string s,c;
        cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // hel
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                if(eq){
                    for(int k=i+1;k<ls;k++){
                        if(c[j]==s[k]and s[k]<s[i]){
                            swap(s[i],s[k]);
                            eq=false;
                            break;
                        }
                    }
                }
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    // ios;
    while(TESTS--){
        string s,c;
        string tot;
        // char toto[5002];
        // cin>>tot;
        cin>>s>>c;
        ll idx;
        // cout<<s<<endl;
        // getline(cin, tot);
        // cin.getline(toto,5002);
        // for(int i=0;i<strlen(toto);i++){
        //     tot.push_back(toto[i]);
        // }

        // cout<<tot<<endl;
        // return 0;
        // cout<<tot.size()<<endl;
        // return 0;
        // // cout<<tot<<endl;
        // for(int i=0;i<tot.length();i++){
        //     if(isspace(tot[i])){
        //         idx=i;
        //         break;
        //     }
        // }
        // s=tot.substr(0,idx);
        // // cout<<tot<<endl;
        // // cout<<s;
        // // return 0;
        // c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        bool eq=true,conf=false;
        int i=0,j=0;
        while(eq){
            // if(s[i]==c[j]){
            //     i++;j++;
            // }
            if(s[i]<c[j]){
                // i++;
                // cout<<"4";
                // cout<<s[i]<<" "<<c[j]<<endl;
                conf=true;
                eq=false;
            }
            else if(s[i]>=c[j]){
                // cout<<"YES"<<endl;
                for(int k=i+1;k<ls;k++){
                    // cout<<s[k];
                    if(c[j]>s[k]){
                        // cout<<"YES"<<endl;
                        swap(s[i],s[k]);
                        eq=false;
                        conf=true;
                        break;
                    }
                }
                if(eq){
                    for(int k=i+1;k<ls;k++){
                        if(c[j]==s[k]and s[k]<s[i]){
                            swap(s[i],s[k]);
                            eq=false;
                            break;
                        }
                    }
                }
            }
            if(eq){
                if(s[i]>c[j])
                eq=false;
            }
            i++;j++;
            if(i==ls or j==lc){
                eq=false;
            }
        }
        // cout<<conf;
        if(conf){
            cout<<s<<endl;
            continue;
        }
        if(ls<lc){
            if(s==c.substr(0,ls)){
                // cout<<"4";
                cout<<s<<endl;
                continue;
            }
        }
        for(int i=0;i<min(ls,lc);i++){
            if(s[i]<c[i]){
                conf=true;
                break;
            }
            else if(s[i]>c[i]){
                break;
            }
        }
        // cout<<"4";
        if(conf){
            cout<<s<<endl;
        }
        else{
            cout<<"---"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;

ll t1,t2,t3;

int main(){
    ll TESTS=1;
    cin>>TESTS;
    // ios;
    while(TESTS--){
        string s,c;
        string tot;
        // char toto[5002];
        // cin>>tot;
        cin>>s>>c;
        ll idx;
        cout<<s<<endl;
        // getline(cin, tot);
        // cin.getline(toto,5002);
        // for(int i=0;i<strlen(toto);i++){
        //     tot.push_back(toto[i]);
        // }
        // cout<<tot<<endl;
        // return 0;
        // cout<<tot.size()<<endl;
        // return 0;
        // // cout<<tot<<endl;
        // for(int i=0;i<tot.length();i++){
        //     if(isspace(tot[i])){
        //         idx=i;
        //         break;
        //     }
        // }
        // s=tot.substr(0,idx);
        // // cout<<tot<<endl;
        // // cout<<s;
        // // return 0;
        // c=tot.substr(idx+1,tot.length()-idx-1);
        // cout<<s<<endl<<c<<endl;
        // cout<<s<<"tt"<<c<<"tt"<<endl;
        // cout<<s<<endl<<c;
        // cin>>s>>c;
        ll ls=s.length(),lc=c.length();
        if(ls<lc){
            if(s==c.substr(0,ls)){
                cout<<s<<endl;
                continue;
            }
        }
        // cout<<"a";
        // bool eq=true,conf=false;
        // int i=0,j=0;
        // while(eq){
        //     // if(s[i]==c[j]){
        //     //     i++;j++;
        //     // }
        //     if(s[i]<c[j]){
        //         // i++;
        //         conf=true;
        //         eq=false;
        //     }
        //     else if(s[i]>=c[j]){
        //         // cout<<"YES"<<endl;
        //         for(int k=i+1;k<ls;k++){
        //             // cout<<s[k];
        //             if(c[j]>s[k]){
        //                 // cout<<"YES"<<endl;
        //                 swap(s[i],s[k]);
        //                 eq=false;
        //                 conf=true;
        //                 break;
        //             }
        //         }
        //         if(eq){
        //             for(int k=i+1;k<ls;k++){
        //                 if(c[j]==s[k]and s[k]<s[i]){
        //                     swap(s[i],s[k]);
        //                     eq=false;
        //                     break;
        //                 }
        //             }
        //         }
        //     }
        //     i++;j++;
        //     if(i==ls or j==lc){
        //         eq=false;
        //     }
        // }
        // if(conf){
        //     cout<<s<<endl;
        //     continue;
        // }
        // if(ls<lc){
        //     if(s==c.substr(0,ls)){
        //         cout<<s<<endl;
        //         continue;
        //     }
        // }
        // for(int i=0;i<min(ls,lc);i++){
        //     if(s[i]<c[i]){
        //         conf=true;
        //         break;
        //     }
        //     else if(s[i]>c[i]){
        //         break;
        //     }
        // }
        // if(conf){
        //     cout<<s<<endl;
        // }
        // else{
        //     cout<<"---"<<endl;
        // }
    }
}