func main() var n: int :: cui@inputInt() var m: int :: cui@inputInt() var nums: []int :: #[n]int var reverseFlag: bool :: false var skipFlag: bool :: false var id: int :: 0 var prev: []char var add: int :: 0 for i(1, m) var s: []char :: cui@inputStr() switch(s) case "number" if(skipFlag) do skipFlag :: false do nums[id] :- add do add :: 0 do next(&id, reverseFlag, n) end if do nums[id] :+ 1 case "drawtwo", "drawfour" if(skipFlag & prev <> s) do skipFlag :: false do nums[id] :- add do add :: 0 do next(&id, reverseFlag, n) end if do add :+ s = "drawtwo" ?(2, 4) do skipFlag :: true do nums[id] :+ 1 case "skip" if(skipFlag) do skipFlag :: false do nums[id] :- add do add :: 0 do next(&id, reverseFlag, n) end if do nums[id] :+ 1 if(i <> m) do next(&id, reverseFlag, n) end if case "reverse" if(skipFlag) do skipFlag :: false do nums[id] :- add do add :: 0 do next(&id, reverseFlag, n) end if do reverseFlag :: !reverseFlag do nums[id] :+ 1 end switch do prev :: s if(i <> m) do next(&id, reverseFlag, n) end if end for do cui@print("\{id + 1} \{nums[id]}\n") func next(id: &int, reverseFlag: bool, n: int) do id :+ reverseFlag ?(n - 1, 1) do id :% n end func end func