import java.io.BufferedReader import java.io.InputStreamReader import kotlin.math.sqrt var result: Int = 0 fun main(args: Array) { BufferedReader(InputStreamReader(System.`in`)).use { val startingNumber = it.readLine() val startingDepth = if (startingNumber.toInt().isPrime()) { 1 } else { 0 } mink(startingNumber, startingDepth) } println(result) } private fun mink(number: String, depth: Int) { if (number.length > 1){ for (i in number.indices) { val newNumber = number.eatDigit(i).toInt() if (newNumber.isPrime()) { mink(newNumber.toString(), depth + 1) } } } result = Math.max(result, depth) } private fun Int.isPrime(): Boolean { if (this == 1){ return false } if (this % 2 == 0) { return false } val upperBound = sqrt(this.toDouble()).toInt() + 1 for (i in 3..upperBound) { if (this % i == 0) { return false } } return true } private fun String.eatDigit(index: Int): String { val stringBuilder = StringBuilder() for (i in this.indices) { if (index != i) { stringBuilder.append(this[i]) } } return stringBuilder.toString() }