fun main(args:Array<String>?): Unit {
    var single = false
    val double = BooleanArray(26){false}
    var last = 'a'
    val out = "!OUT"
    repeat(50){
        println("?${last + it.toString().map{c -> 'a' + (c - '0')}.joinToString("") + 'a'}")
        val result = readLine()!!.trim()
        if (result.first() != 'a'){
            println(out)
            return
        }else if (result.length == 2 && double[result[1] - 'a']){
            println(out)
            return
        }else if (result.length == 1 && single) {
            println(out)
            return
        }
        if (result.length == 2) double[result[1] - 'a'] = true
        else single = true
        last = result.last()
    }
}
