func_code_string: #pragma GCC optimize( Ofast )   #pragma GCC target( avx,avx2,fma )   #pragma GCC optimization ( O3 )   #pragma GCC optimization ( unroll-loops )      #include<bits/stdc++.h>   using namespace std;      #define pb push_back   #define mp make_pair   #define F first   #define S second   #define lb lower_bound   #define ub upper_bound   #define sz(x) (int)(x).size()   #define all(x) x.begin(), x.end()      typedef long long ll;   typedef long double ld;   typedef complex<ld> cd;   typedef pair<int, int> pii;   typedef pair<ll,ll> pll;   typedef pair<ld,ld> pld;   typedef vector<int> vi;   typedef vector<ld> vd;   typedef vector<ll> vl;   typedef vector<pii> vpi;   typedef vector<pll> vpl;      #define FOR(i, a, b) for (int i=a; i<(b); i++)   #define F0R(i, a) for (int i=0; i<(a); i++)   #define FORd(i,a,b) for (int i = (b)-1; i >= a; i--)   #define F0Rd(i,a) for (int i = (a)-1; i >= 0; i--)   #define trav(a,x) for (auto& a : x)      mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());       ll powmod(ll a,ll b) {ll res=1; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a;a=a*a;}return res;}   ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}   int n,d;      void solve() {       int n; string a,b;       cin >> n >> a >> b;       if(a==b) { cout << b <<   n ; return ; }       if(a[0] ==  0 ) { F0R(i,n) cout <<  1 ; cout<<  n ; return; }       if(b.back() ==  1  || a == b) { cout << b <<   n ; return ; }        {                  int l = n-1;           while(a[l] ==  1 ) --l;           a[l]= 1 ; FOR(i,l+1,n) a[i]= 0 ;       }       if(a != b) b[n-1] =  1 ;       { cout << b <<   n ; return ; }   }         int main(){       ios_base::sync_with_stdio(false); cin.tie(NULL);         #ifndef ONLINE_JUDGE           freopen( input.txt , r ,stdin);           freopen( output.txt , w ,stdout);       #endif        int t=1,Tc=1;       while(t--){           //cout <<  Case # <<Tc<< :  ; Tc++;           solve();       }     return 0;   }