let (|Possible|Impossible|) (tup : (char * int)[]) = let getN n = tup |> Array.where(fun (_, b) -> b = n) let num = tup |> Array.length let pair = getN 2 let lonly = getN 1 let pairNum = pair |> Array.length let lonlyNum = lonly |> Array.length if pairNum + lonlyNum = num && lonlyNum = 1 then let key,_ = lonly |> Array.head Possible key else Impossible let S = stdin.ReadLine() S.ToCharArray() |> Array.countBy(fun x -> x) |> function Possible x -> string x | Impossible -> "Impossible" |> printfn "%s"