#include <bits/stdc++.h>   using namespace std;   using LL = long long;   using LD = long double;   using ULL = unsigned long long;   template <class T1, class T2>   using P = pair<T1, T2>;   using PII = P<int, int>;   using PLL = P<LL, LL>;   using PLD = P<LD, LD>;   template <class T>   using V = vector<T>;   using VI = V<int>;   using VLL = V<LL>;   using VLD = V<LD>;   using VB = V<bool>;   using VS = V<string>;   template <class T, class Comp = greater<T>>   using PQ = priority_queue<T, V<T>, Comp>;   template <class T>   int sz(const T& x) {     return (int)size(x);   }   template <class T>   bool amin(T& a, const T& b) {     if (b < a) {       a = b;       return true;     }     return false;   }   template <class T>   bool amax(T& a, const T& b) {     if (b > a) {       a = b;       return true;     }     return false;   }   const size_t rseed =       std::chrono::high_resolution_clock::now().time_since_epoch().count();   mt19937 rnd(rseed);   int randint(int lo, int hi) {     return uniform_int_distribution<int>{lo, hi}(rnd);   }   int main() {     int T;     scanf( %d , &T);     for (int t = (1); t <= (T); t++) {       int n;       scanf( %d , &n);       string s(n + 1,    );       scanf( %s , &s[0]);       string a(n,    ), b(n,    );       bool f = false;       for (int i = (0); i <= (n - 1); i++) {         if (f) {           a[i] =  0 ;           b[i] = s[i];         } else {           if (s[i] ==  1 ) {             f = true;             a[i] =  1 ;             b[i] =  0 ;           } else if (s[i] ==  2 )             a[i] = b[i] =  1 ;           else             a[i] = b[i] =  0 ;         }       }       printf( %s n%s n , a.c_str(), b.c_str());     }   }   