import std.algorithm, std.range, std.string;
void main()
{
    import std.stdio;
    auto masked = readln.chomp;
    auto sub = readln.chomp;
    string[] candidate;
    foreach (substringPosition; 0..masked.length-sub.length+1)
    {
        bool match = true;
        foreach (i, c; sub)
        {
            if (masked[substringPosition+i] == '?')
                continue;
            if (masked[substringPosition+i] == c)
                continue;
            stderr.writefln("sp=%d, i=%d, %c!=%c", substringPosition, i, masked[substringPosition+i], c);
            match = false;
        }
        if (match)
        {
            candidate ~= retrieveKey(masked, sub, substringPosition);
        }
    }
    candidate.sort();
    if (candidate.empty)
        "UNRESTORABLE".writeln;
    else
        candidate.front.writeln;
}
string retrieveKey(string masked, string sub, size_t substringPosition)
{
    string toFillWithA = masked[0..substringPosition] ~ sub ~ masked[substringPosition+sub.length..$];
    return toFillWithA.replace("?", "a");
}
