#include <bits/stdc++.h>
using namespace std;
#define ub upper_bound // first element > val(itr)
#define lb lower_bound // first element >= val(itr)
#define sz(a) int((a).size())
#define pb push_back
#define all(c) (c).begin(),(c).end()
#define tr(c,i) for(typeof((c)).begin() i = (c).begin(); i != (c).end(); i++)
#define present(c,x) ((c).find(x) != (c).end())
#define cpresent(c,x) (find(all(c),x) != (c).end())
#define mem(a,b) memset( a, b, sizeof(a) )
#define x first
#define y second
#define bitcount(a) __builtin_popcount(a) // count set bits
#define lzcount(x) __builtin_clz(x) // count leading zeros in binary representation of number
#define tzcount(x) __builtin_ctz(x) // count trailing zeros in binary representation of number
#define FAST ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
typedef long long ll;
typedef long double lld;
const ll MOD = 1e9+7;
const lld PI = acos(-1.0);
template<typename T> T gcd(T a,T b){ if(b>a) return gcd(b,a);return b==0?a:gcd(b,a%b); }
template<typename T> T lcm(T a, T b) { return a * b / gcd(a, b); }
template<typename T> T fast_power(T x,T y,ll m=MOD){T ans=1;while(y>0){if(y&1LL) ans=(ans*x)%m;y>>=1LL;x=(x*x)%m;}return ans%m;}
template<typename X> inline X abs(const X& a) { return a < 0? -a: a; }
template<typename X> inline X sqr(const X& a) { return a * a; }
inline ll mod(ll x,ll n) {if (x < n) return x; if (x >= n) return x - n;}
string IntToString(ll a){ ostringstream temp; temp << a; return temp.str();}
ll findMMI_fermat(ll n,ll M) {ll ans= fast_power(n,M-2,M);return ans;}//i.e In (a/b)%M..it calculates MMI of b wrt M,only if M is prime
ll add(ll a,ll b,ll M) { return mod(( mod(a,M ) + mod(b,M )),M); }
ll sub(ll a, ll b,ll M) { return mod((mod(a,M ) + M - mod(b,M )),M); }
ll mult(ll a,ll b,ll M) { return mod(( mod(a,M)*mod(b,M) ),M) ; }
bool isprime(ll a){ if(a==2) {return 1;}if(!(a&1) ) {return 0;}for(ll i=3;i*i<=a;i+=2){if(a%i==0) {return 0;} } return 1;}
ll gcdExtended(ll a, ll b, ll *x, ll *y){
if (a == 0){
*x = 0, *y = 1;
return b;
}
ll x1, y1;
ll gcd1= gcdExtended(b%a, a, &x1, &y1);
*x = y1 - (b/a) * x1;
*y = x1;
return gcd1;
}
ll modInv(ll a, ll m){
ll x, y;
ll g = gcdExtended(a, m, &x, &y);
ll res = (x%m + m) % m;
return res;
}
/* -------------------------------Main Code------------------------------- */
int main(){
FAST
int t;cin>>t;
while(t--){
//while(t--){
string s,r;cin>>s>>r;
string temp;
int cnt1[26]={0},cnt2[26]={0};
for(int i=0;i<sz(s);i++){
cnt1[s[i]-'a']++;
}
for(int i=0;i<sz(r);i++){
cnt2[r[i]-'a']++;
}
int poss = 1;
for(int i=0;i<26;i++){
if(cnt2[i]<cnt1[i]){
poss=0;
}
cnt2[i]-=cnt1[i];
}
//cout<<"A"<<endl;
temp.reserve(sz(r));
if(poss){
int stop = s[0]-'a';
//int x = 0;
for(int i=0;i!=stop;i++){
temp.append(cnt2[i], (i+'a'));
//x+=cnt2[i];
}
temp += s;
//x+=sz(s);
for(int i=stop;i<26;i++){
temp.append(cnt2[i], (i+'a'));
//x+=cnt2[i];
}
cout<<temp<<endl;
}
else{
cout<<"Impossible"<<endl;
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHViICAgICAgICB1cHBlcl9ib3VuZCAgICAgICAgICAgIC8vIGZpcnN0IGVsZW1lbnQgPiAgdmFsKGl0cikKI2RlZmluZSBsYiAgICAgICAgbG93ZXJfYm91bmQgICAgICAgICAgICAvLyBmaXJzdCBlbGVtZW50ID49IHZhbChpdHIpCgojZGVmaW5lIHN6KGEpIGludCgoYSkuc2l6ZSgpKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGFsbChjKSAoYykuYmVnaW4oKSwoYykuZW5kKCkKI2RlZmluZSB0cihjLGkpIGZvcih0eXBlb2YoKGMpKS5iZWdpbigpIGkgPSAoYykuYmVnaW4oKTsgaSAhPSAoYykuZW5kKCk7IGkrKykKI2RlZmluZSBwcmVzZW50KGMseCkgKChjKS5maW5kKHgpICE9IChjKS5lbmQoKSkgCiNkZWZpbmUgY3ByZXNlbnQoYyx4KSAoZmluZChhbGwoYykseCkgIT0gKGMpLmVuZCgpKSAKI2RlZmluZSBtZW0oYSxiKSBtZW1zZXQoIGEsIGIsIHNpemVvZihhKSApCiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCgojZGVmaW5lIGJpdGNvdW50KGEpIF9fYnVpbHRpbl9wb3Bjb3VudChhKSAgIC8vIGNvdW50IHNldCBiaXRzCiNkZWZpbmUgbHpjb3VudCh4KSBfX2J1aWx0aW5fY2x6KHgpICAgICAgICAvLyBjb3VudCBsZWFkaW5nIHplcm9zIGluIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiBudW1iZXIKI2RlZmluZSB0emNvdW50KHgpIF9fYnVpbHRpbl9jdHooeCkgICAgICAgIC8vIGNvdW50IHRyYWlsaW5nIHplcm9zIGluIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiBudW1iZXIKCiNkZWZpbmUgRkFTVCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKG51bGxwdHIpO2NvdXQudGllKG51bGxwdHIpOwoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGxkOwpjb25zdCBsbCBNT0QgPSAxZTkrNzsKY29uc3QgbGxkIFBJID0gYWNvcygtMS4wKTsKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgZ2NkKFQgYSxUIGIpeyBpZihiPmEpIHJldHVybiBnY2QoYixhKTtyZXR1cm4gYj09MD9hOmdjZChiLGElYik7IH0KdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBsY20oVCBhLCBUIGIpIHsgcmV0dXJuIGEgKiBiIC8gZ2NkKGEsIGIpOyB9CnRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgZmFzdF9wb3dlcihUIHgsVCB5LGxsIG09TU9EKXtUIGFucz0xO3doaWxlKHk+MCl7aWYoeSYxTEwpIGFucz0oYW5zKngpJW07eT4+PTFMTDt4PSh4KngpJW07fXJldHVybiBhbnMlbTt9CnRlbXBsYXRlPHR5cGVuYW1lIFg+IGlubGluZSBYIGFicyhjb25zdCBYJiBhKSB7IHJldHVybiBhIDwgMD8gLWE6IGE7IH0KdGVtcGxhdGU8dHlwZW5hbWUgWD4gaW5saW5lIFggc3FyKGNvbnN0IFgmIGEpIHsgcmV0dXJuIGEgKiBhOyB9CgppbmxpbmUgbGwgbW9kKGxsIHgsbGwgbikge2lmICh4IDwgbikgcmV0dXJuIHg7IGlmICh4ID49IG4pIHJldHVybiB4IC0gbjt9CnN0cmluZyBJbnRUb1N0cmluZyhsbCBhKXsgb3N0cmluZ3N0cmVhbSB0ZW1wOyB0ZW1wIDw8IGE7IHJldHVybiB0ZW1wLnN0cigpO30KbGwgZmluZE1NSV9mZXJtYXQobGwgbixsbCBNKSB7bGwgYW5zPSBmYXN0X3Bvd2VyKG4sTS0yLE0pO3JldHVybiBhbnM7fS8vaS5lIEluIChhL2IpJU0uLml0IGNhbGN1bGF0ZXMgTU1JIG9mIGIgd3J0IE0sb25seSBpZiBNIGlzIHByaW1lCmxsIGFkZChsbCBhLGxsIGIsbGwgTSkgIHsgcmV0dXJuIG1vZCgoIG1vZChhLE0gKSArIG1vZChiLE0gKSksTSk7ICAgICB9CmxsIHN1YihsbCBhLCBsbCBiLGxsIE0pIHsgcmV0dXJuIG1vZCgobW9kKGEsTSApICsgTSAtIG1vZChiLE0gKSksTSk7ICAgfQpsbCBtdWx0KGxsIGEsbGwgYixsbCBNKSB7IHJldHVybiAgbW9kKCggbW9kKGEsTSkqbW9kKGIsTSkgKSxNKSA7IH0KYm9vbCBpc3ByaW1lKGxsIGEpeyBpZihhPT0yKSB7cmV0dXJuIDE7fWlmKCEoYSYxKSApIHtyZXR1cm4gMDt9Zm9yKGxsIGk9MztpKmk8PWE7aSs9Mil7aWYoYSVpPT0wKSB7cmV0dXJuIDA7fSB9IHJldHVybiAxO30gCgpsbCBnY2RFeHRlbmRlZChsbCBhLCBsbCBiLCBsbCAqeCwgbGwgKnkpewogICAgaWYgKGEgPT0gMCl7CiAgICAgICAgKnggPSAwLCAqeSA9IDE7CiAgICAgICAgcmV0dXJuIGI7CiAgICB9CiAgICBsbCB4MSwgeTE7CiAgICBsbCBnY2QxPSBnY2RFeHRlbmRlZChiJWEsIGEsICZ4MSwgJnkxKTsKICAgICp4ID0geTEgLSAoYi9hKSAqIHgxOwogICAgKnkgPSB4MTsKICAgIHJldHVybiBnY2QxOwp9CgpsbCBtb2RJbnYobGwgYSwgbGwgbSl7CiAgICBsbCB4LCB5OwogICAgbGwgZyA9IGdjZEV4dGVuZGVkKGEsIG0sICZ4LCAmeSk7CiAgICBsbCByZXMgPSAoeCVtICsgbSkgJSBtOwogICAgcmV0dXJuIHJlczsKfQogIAogICAgICAgICAgICAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tTWFpbiBDb2RlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKCmludCBtYWluKCl7CiAgICBGQVNUCiAgICBpbnQgdDtjaW4+PnQ7CiAgICB3aGlsZSh0LS0pewogICAgICAgIC8vd2hpbGUodC0tKXsKICAgICAgICAgICAgc3RyaW5nIHMscjtjaW4+PnM+PnI7CiAgICAgICAgICAgIHN0cmluZyB0ZW1wOwogICAgICAgICAgICBpbnQgY250MVsyNl09ezB9LGNudDJbMjZdPXswfTsKICAgICAgICAgICAgZm9yKGludCBpPTA7aTxzeihzKTtpKyspewogICAgICAgICAgICAgICAgY250MVtzW2ldLSdhJ10rKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IoaW50IGk9MDtpPHN6KHIpO2krKyl7CiAgICAgICAgICAgICAgICBjbnQyW3JbaV0tJ2EnXSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGludCBwb3NzID0gMTsKICAgICAgICAgICAgZm9yKGludCBpPTA7aTwyNjtpKyspewogICAgICAgICAgICAgICAgaWYoY250MltpXTxjbnQxW2ldKXsKICAgICAgICAgICAgICAgICAgICBwb3NzPTA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjbnQyW2ldLT1jbnQxW2ldOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vY291dDw8IkEiPDxlbmRsOwogICAgICAgICAgICB0ZW1wLnJlc2VydmUoc3oocikpOwogICAgICAgICAgICBpZihwb3NzKXsKICAgICAgICAgICAgICAgIGludCBzdG9wID0gc1swXS0nYSc7CiAgICAgICAgICAgICAgICAvL2ludCB4ID0gMDsKICAgICAgICAgICAgICAgIGZvcihpbnQgaT0wO2khPXN0b3A7aSsrKXsKICAgICAgICAgICAgICAgICAgICB0ZW1wLmFwcGVuZChjbnQyW2ldLCAoaSsnYScpKTsKICAgICAgICAgICAgICAgICAgICAvL3grPWNudDJbaV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0ZW1wICs9IHM7CiAgICAgICAgICAgICAgICAvL3grPXN6KHMpOwogICAgICAgICAgICAgICAgZm9yKGludCBpPXN0b3A7aTwyNjtpKyspewogICAgICAgICAgICAgICAgICAgIHRlbXAuYXBwZW5kKGNudDJbaV0sIChpKydhJykpOwogICAgICAgICAgICAgICAgICAgIC8veCs9Y250MltpXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvdXQ8PHRlbXA8PGVuZGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIGNvdXQ8PCJJbXBvc3NpYmxlIjw8ZW5kbDsKICAgICAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0KCg==