#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<cmath>
#include<iostream>
#include<cstring>
using namespace std;
template<class _T>inline void read(_T &_a)
{
    bool f=0; char _c=getchar(); _a=0;
    while(_c<'0'||_c>'9'){ if(_c=='-') f=1; _c=getchar(); }
    while(_c>='0'&&_c<='9'){ _a=(_a<<3)+(_a<<1)-'0'+_c; _c=getchar(); }
    if(f) _a=-_a;
}

const int MAXN=1000002;
int n;
char l[MAXN],r[MAXN];

inline bool check()
{
    bool flag=false;
    int loc;
    for (int i=1;i<=n;++i)
    {
        if(l[i]!=r[i])
        {
            if(!flag) flag=true,loc=i;
            else if(l[i]=='0') return false;
        }
    }
    if(!flag) return true;
    else {
        if(l[loc]=='1') return false;
        return true;
    }
}

int main()
{
    read(n);
    scanf("%s\n%s",l+1,r+1);
    if(l[1]=='0'&&r[1]=='1')
    {
        for (int i=1;i<=n;++i) putchar('1');
        return 0;
    }
    if(r[n]&1) printf("%s",r+1);
    else {
        if(check()) printf("%s",r+1);
        else {
            r[n]='\0';
            printf("%s1",r+1);
        }
    }


    return 0;
}