import java.lang.Integer.max fun main() { readLine() val socks = generateSequence(::readLine).toList() .map { it.split(" ") }.groupBy { it[0] }.values.map { v -> v.associate { it[1] to it[2].toInt() } } .map { v -> Triple(v.getOrDefault("left", 0), v.getOrDefault("right", 0), v.getOrDefault("any", 0)) } val possible = socks.any { (l, r, a) -> val s = l + r + a; (s >= 2) and (l < s) and (r < s) } val res = 1 + socks.sumOf { (l, r, _) -> max(l, r) + (if (l + r == 0) 1 else 0) } println(if (possible) res else "impossible") }