import std.algorithm;
import std.array;
import std.conv;
import std.math;
import std.range;
import std.stdio;
import std.string;
import std.typecons;

int readint() {
    return readln.chomp.to!int;
}

int[] readints() {
    return readln.split.map!(to!int).array;
}

string calc(string s, string t) {

    bool match(int start) {
        for (int i = 0; i < t.length; i++) {
            if (s[start + i] == '?')
                continue;
            if (s[start + i] != t[i])
                return false;
        }
        return true;
    }

    for (int i = cast(int)(s.length - t.length); i >= 0; i--) {
        if (match(i)) {
            auto cs = new char[s.length];
            for (int j = 0; j < cs.length; j++) {
                cs[j] = s[j] == '?' ? 'a' : s[j];
            }

            for (int j = 0; j < t.length; j++) {
                cs[i + j] = t[j];
            }
            return to!string(cs);
        }
    }
    return "UNRESTORABLE";
}

void main() {
    string s = readln.chomp;
    string t = readln.chomp;

    auto ans = calc(s, t);
    writeln(ans);
}
