#include<stdio.h>

char l[1000002],r[1000002];

int smaller_or_equal(int n){
    int i;
    for(i = 0;i <= n;i++){
        if(l[i] > r[i]) return 0;
        if(l[i] < r[i]) return 1;
    }
    return 1;
}

void add_1(char num[],int n){
    int i = n;
    while(num[i] == '1'){
        num[i] = '0';
        i--;
    }
    num[i] = '1';
}

void solve(int n){
    int i;
    if(r[1] != '0' && l[1] == '0'){
        for(i = 1;i <= n;i++) r[i] = '1';
        printf("%s\n",r + 1);
        return;
    }
    add_1(l,n);
    add_1(l,n);
    //printf("%s\n",l + 1);
    //printf("%s\n",r + 1);
    if(smaller_or_equal(n + 1)) r[n] = '1';
    printf("%s\n",r + 1);
}

int main(){
    int n,n_,i;
    scanf("%d",&n);
    scanf(" %s",l + 1);
    //printf("%s\n",l + 1);
    scanf(" %s",r + 1);
    //printf("%s\n",r + 1);
    solve(n);
    return 0;
}