// FIR_IDENTICAL sealed class Operation(val left: Int, val right: Int) { abstract fun exec(): Int class Plus(left: Int, right: Int): Operation(left, right) { override fun exec(): Int = left + right } class Minus(left: Int, right: Int): Operation(left, right) { override fun exec(): Int = left - right } class Times(left: Int, right: Int): Operation(left, right) { override fun exec(): Int = left * right } class Slash(left: Int, right: Int): Operation(left, right) { override fun exec(): Int = left / right } } fun priority(op: Operation) = when(op) { is Operation.Plus, is Operation.Minus -> 1 is Operation.Times, is Operation.Slash -> 2 }