#import <stdio.h>
#import <string.h>
#import <Foundation/Foundation.h>

BOOL match(char *S, char *T, int pos) {
    unsigned long t = strlen(T);
    for (int i=0;i<t;i++) {
        if (S[pos+i]==T[i] || S[pos+i]=='?') {
            continue;
        }
        return NO;
    }
    return YES;
}

void fill(char *S, char *T, char *U, int pos) {
    unsigned long s = strlen(S);
    unsigned long t = strlen(T);
    for (int i=0;i<s;i++) {
        if (pos<=i && i<pos+t) {
            U[i] = T[i-pos];
        } else {
            U[i] = S[i];
        }
    }
}

int main() {
    @autoreleasepool {
        char S[100] = {'\0'};
        char T[100] = {'\0'};
        scanf("%s %s", S, T);
        unsigned long s = strlen(S);
        unsigned long t = strlen(T);
        
        NSMutableArray *candidates = [NSMutableArray array];
        for(int i=0;i<=s-t;i++) {
            if (match(S, T, i)) {
                char U[100] = {'\0'};
                fill(S,T,U,i);
                NSMutableString *str = [NSMutableString stringWithUTF8String:U];
                [str replaceOccurrencesOfString:@"?" withString:@"a" options:0 range:NSMakeRange(0, [str length])];
                [candidates addObject: str];
            }
        }
        if ([candidates count] > 0) {
            [candidates sortUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES]]];
            printf([(NSString*)[candidates objectAtIndex:0] UTF8String]);
        } else {
            printf("UNRESTORABLE");
        }
    }
}
