import java.util.*

fun main(args: Array<String>) {
    val sc = Scanner(System.`in`)
    val s = sc.next()
    val t = sc.next()
    println(problem076c(s, t))
}

fun problem076c(s: String, t: String): String {
    val s = s.toCharArray()
    val t = t.toCharArray()
    var count = 0
    var tStart = -1
    var i = 0
    while (i < s.size) {
        if (count == 0 && (s[i] == t[0] || s[i] == '?' )) {
            count++
        } else if (count != 0 && (s[i] == t[0 + count] || s[i] == '?')) {
            count++
        } else {
            count = 0
        }
        if (count == t.size) {
            tStart = i - count + 1
            i = tStart
            count = 0
        }
        i++
    }
    if (tStart == -1) {
        return "UNRESTORABLE"
    }
    var res = ""
    for (i in 0 until s.size) {
        val si = s[i]
        if (i >= tStart && i < tStart + t.size && si == '?') {
            res += t[i - tStart]
        } else if (si == '?') {
            res += 'a'
        } else {
            res += si
        }
    }
    return res
}
