你在玩一个动作游戏。游戏控制器有 $4$ 个按键,A、B、X 和 Y。在游戏中,你用组合动作来赚金币。你可以依次按这些按键来完成一个组合动作。
这个游戏有一个隐藏的按键序列,可以表示为由这 $4$ 个字符组成的串 $S$。你并不知道这个串 $S$,但是你知道它的长度为 $N$。
你还知道,$S$ 的首字符不会在串中重复出现。例如,$S$ 可以是“ABXYY”或者“XYYAA”,但不能是“AAAAA”或“BXYBX”。
你可以依次按最多 $4N$ 个按键来完成一个组合动作。串 $p$ 为你所按的按键序列。你用这个组合动作赚到的金币数量,等于同时为 $p$ 之子串和 $S$ 之前缀的最长字符串的长度。串 $t$ 的子串定义为 $t$ 中的连续字符序列(可以为空)。$t$ 的前缀定义为 $t$ 的子串,其或者为空,或者包含 $t$ 的首字符。
例如,如果 $S$ 是“ABXYY”,而 $p$ 是“XXYYABYABXAY”,你会得到 $3$ 个金币,因为“ABX”是可作为 $p$ 的子串的 $S$ 的前缀中最长的。
你的任务是,用少量的组合动作,找出隐藏字符串 $S$。