背景

          ____
        /      \
       /      ―   ‐      時刻は 20:30
     /        ( ●)  )
     |            (__ノ、_)    真っ白の空間と、虚空に浮かぶディスプレイ――
     \           `_⌒
      /⌒ヽ   ー‐    ィヽ_
      /  、     、  〆ヾ ̄ `i
    /  /      ゙  lヾ_ ,|ヽ─ヘ
    /  /l         `、´/     ヽ
   /  / ヽ  ,____   `  ,ヽ  ヽ
 -─ヽ イ_ ヽ /     ̄ ̄ ̄ ̄`ヽ Y   ゝ‐-、
( _i _i_ト、__)  ヽ、___⊥____ノ 「___ノ

          ____
         /      \
       / ─    ─ \
      /   (●)  (●)  \     ……ここはどこだお?
       |      (__人__)     |
      \     `⌒´    ,/
      /     ー‐    \
      /⌒ヽ   ー‐    ィヽ_
      /  、     、  〆ヾ ̄ `i
    /  /      ゙  lヾ_ ,|ヽ─ヘ
    /  /l         `、´/     ヽ
   /  / ヽ  ,____   `  ,ヽ  ヽ
 -─ヽ イ_ ヽ /     ̄ ̄ ̄ ̄`ヽ Y   ゝ‐-、
( _i _i_ト、__)  ヽ、___⊥____ノ 「___ノ

                                                 ___
                                       ,,.-''"´        ` .、
                                       /               ヽ
                                      ./                   ',
                                     l                    l
                                    /                   l
                         起きたか     〈`ヽ、              |
                                    |ミ=-    ̄ ̄`ヽ       /
                                        l     ミ=-‐       .′
                                      l/    ヽ          ,'
                                    ( __ 人    )         {
                                    / // )ニ=''´      ./ .|
                               ツ二二二/ ./__        ./  |
  やらない夫!?                           / / /''"__,ノ        ′ .|
  何が起きているんだお                     / / / /,.-''")_ _,,-''´ /    ヽ__
                                   ,'       /'´,,..-''´|     /   _ \/`ヽ、
                              _  ´l      / ./  |      ´    /  / \
                          ,,..-''"    |      .l ./  /   イ         /  /    \

                                         / ̄ ̄\
                                       /  ヽ、_ .:::\
               何って、 AtCoder だろ          (●)(● ) .:::::::|
                                      (__人__)   ::::::|
               デスゲームが始まったんだよ      (`⌒ ´    ::::|
                                       {         ..::::|
               3 回瓦を割ったら爆発するぜ        {      ...:::ノ
                                          ヽ  ......::::ノ
                                             _j:::::, イ>x、_
                                           /i!イ__/////7>x
                                          ///i|   ./////////l∧
                                      ////i|   ///////////l∧
                                       /////i| /////////////l∧
                                    ヽi////!.///////////////ハ
                                          |/////////////////////ム
                                     i/////////////i/ ∨/////ム
                                       /////////////// ,ノ///////〉
                                    ///////////////ム////////,イ
  雑な導入だお!?                        ////////////////j////////
                                 //////////////////////l//
                                 〉77|//////////////////////≧x、__,
                                i///j///////////j>--</////////
                                ∨iLi////////////77777///////i/
                                 `” |/////////j/////////////j/

                                       / ̄ ̄\
                                      /ヽ、_    \
               俺たちの言語は Haskell だ       ( (● )    |
                                      (ノ、__)      |
                                         |⌒´       |
                                       |   -‐`‐'チ-..|          / \
                                     `'x::'´:::::::::::::::::::::::::7      /     >
                                   __ヽ___::::::::::::〈.       \/7,/
                                     /::`ヽ::::::::::::::::::::::: ̄`:::::::`:..、   ,// /
                                  l:::::::::::ヽ:::::::::::::::::::::::::::l:::::::::::::`:.、 l ′ 7ァ
                                  |::::::::::::::ヽ::::::::::::::::::::::::!:::::::::::::::;イ l    /
                                  `、::::::::::::∨::::::::::::::::::/:::::::::::::/::l. }‐...x'
                                     `、:::::::::::`、::::::::::/:::::::::::::/:::::〉/ニニソ
                                        `;:::::::::::::`,::::::::/::::::::::::/::::::::|/:::::::/
                                        `;:::::::::::::`,:::/:::::::::/ l::::::::::::!:::::::/
                                      〉::::::::::::::Y:::::::::/.  l:::::::::::l}::::/

      ____
     /ノ   ヽ、_\    r ⌒j
   /( ○).  (○)\  /   /
  /    (__人__)   \/   /   /  )   無理だお
 | u    .` ⌒´     /  /  /  /    それだけはよしてくれお
 \            /   '` ´  /
   r´  (⌒'ー―- イ′     ´廴
  /    > 、     ヽ      _  ̄ ̄ ̄)
 /        -、      }        (  ̄¨´
/           ヽ._       __  \
             `   --‐'´ `゙'

                                                 / ̄ ̄\
                                               / ヽ、_   \
                             贅沢を言うな         (─)(─ )   |
                         やつは Nibbles だぞ     rm、.(__人__)     |
             _,,........_                                 ||川n(,`⌒ ´     |
            _,(,,、,、,、,、,、)_                             ||  !. {           |
           , i  ノ)ノイヽ),.                           ヽ. 〈  {         /
           i 、ヽvイ゚ ヮ゚ノリノi   ウワーイ                 | |, !. ヽ     /
           、 __(_,}i'立!{_)ノ                              | |  |__ ヽ   〈
            ,(ン::(__)ヾ)                               ゞゝ__ ̄''⌒  ヽ
            `^^i_ソ_ソ^´                                ̄ ̄  トー、   }
                                                |:     |

      ____
     /ノ   ヽ、_\    r ⌒j
   /( ○).  (○)\  /   /
  /    (__人__)   \/   /   /  )   無理だお
 | u    .` ⌒´     /  /  /  /    それだけはよしてあげて欲しいお
 \            /   '` ´  /
   r´  (⌒'ー―- イ′     ´廴
  /    > 、     ヽ      _  ̄ ̄ ̄)
 /        -、      }        (  ̄¨´
/           ヽ._       __  \
             `   --‐'´ `゙'

ABC 403

               ____
             /      \
           / ─    ─ \
          /   (●)  (●)  \    ABC 403 に参加するお
            |      (__人__)     |
          \     `⌒´    ,/
          /     ー‐    \

          ____
        /      \
       /  ─    ─\
     /    (●)  (●) \  まずはレジってと……
     |       (__人__)    | ___________
     \      ` ⌒´   ,/ | |   20:56        |
___/           \ | |             |
| | /    ,                | |             |
| | /   ./             | |             |
| | | ⌒ ーnnn          |_|___________|
 ̄ \__、("二) ̄ ̄ ̄ ̄ ̄ ̄     _|_|__|_

ABC 403

          ____
        /      \
       /  ─    ─\
     /    (●)  (●) \  …………
     |       (__人__)    | ___________
     \      ` ⌒´   ,/ | |   20:57        |
___/           \ | |             |
| | /    ,                | |             |
| | /   ./             | |             |
| | | ⌒ ーnnn          |_|___________|
 ̄ \__、("二) ̄ ̄ ̄ ̄ ̄ ̄     _|_|__|_

         __ ____
      //   ̄  \\
     //--.--  -─\\
   //  (● ●) ((●(●) \ ガタガタガタガタガタガタ
 .| |.|    ( . ((_人_人__)    | _ _== =
     \\    ⌒ ` /,/ | |   20:58  ̄ ̄| ||
    ノ         \\| | | |           ||
  /´                 | |          | |
 |    l                | |          |||        うるせえ
 ヽ    -一ー_~、⌒)^),-、   | |_________| |
  ヽ ____,ノγ⌒ヽ)ニニ- ̄   | |  | = =

          ____
        /      \
       /  ─    ─\
     /    (●)  (●) \  そういえば、やる夫は Haskell が得意だったお
     |       (__人__)    | ___________
     \      ` ⌒´   ,/ | |  20:59         |
___/           \ | |             |
| | /    ,                | |             |
| | /   ./             | |             |
| | | ⌒ ーnnn          |_|___________|
 ̄ \__、("二) ̄ ̄ ̄ ̄ ̄ ̄     _|_|__|_

A 問題

        ____
      / ─  ─\
     / (●) (●)\      さあどこからでも
   /    (__人__)    \     かかって来なさい
    |     ` ⌒´     |
   \             /
   ノ            \
. /´                 ヽ
 |    l             \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

                                     / ̄ ̄\
                                    /ヽ、_    \
               (なんだてめぇ……)          ( (● )    |
                                   (ノ、__)      |
               数列の奇数番目の要素の        |⌒´       |
               和を求めろ              |   -‐`‐'チ-..|          / \
                                  `'x::'´:::::::::::::::::::::::::7      /     >
                                __ヽ___::::::::::::〈.       \/7,/
                                  /::`ヽ::::::::::::::::::::::: ̄`:::::::`:..、   ,// /
                               l:::::::::::ヽ:::::::::::::::::::::::::::l:::::::::::::`:.、 l ′ 7ァ
                               |::::::::::::::ヽ::::::::::::::::::::::::!:::::::::::::::;イ l    /
                               `、::::::::::::∨::::::::::::::::::/:::::::::::::/::l. }‐...x'
                                  `、:::::::::::`、::::::::::/:::::::::::::/:::::〉/ニニソ
                                     `;:::::::::::::`,::::::::/::::::::::::/::::::::|/:::::::/
                                     `;:::::::::::::`,:::/:::::::::/ l::::::::::::!:::::::/
                                   〉::::::::::::::Y:::::::::/.  l:::::::::::l}::::/

          ____
         / \  /\  キリッ
       / (ー)  (ー)\
    /   ⌒(__人__)⌒ \      ifilter の出番だお
    |      |r┬-|    |     テンプレートは省略するお
     \     `ー'´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

solve :: StateT BS.ByteString IO ()
solve = do
  n <- int'
  xs <- intsU'
  printBSB . U.sum $ U.ifilter (const . even) xs

B 問題

                                    / ̄ ̄\
                                   /ヽ、_    \
               文字列 S が文字列 T の     ( (● )    |
               連続部分列とマッチする     (ノ、__)      |
               か調べろ                 |⌒´       |
                                   |   -‐`‐'チ-..|          / \
               詳しくは問題文を読め     `'x::'´:::::::::::::::::::::::::7      /     >
                                __ヽ___::::::::::::〈.       \/7,/
                                  /::`ヽ::::::::::::::::::::::: ̄`:::::::`:..、   ,// /
                               l:::::::::::ヽ:::::::::::::::::::::::::::l:::::::::::::`:.、 l ′ 7ァ
                               |::::::::::::::ヽ::::::::::::::::::::::::!:::::::::::::::;イ l    /
                               `、::::::::::::∨::::::::::::::::::/:::::::::::::/::l. }‐...x'
                                  `、:::::::::::`、::::::::::/:::::::::::::/:::::〉/ニニソ
                                     `;:::::::::::::`,::::::::/::::::::::::/::::::::|/:::::::/
                                     `;:::::::::::::`,:::/:::::::::/ l::::::::::::!:::::::/
                                   〉::::::::::::::Y:::::::::/.  l:::::::::::l}::::/

          ____
         / \  /\  キリッ
       / (ー)  (ー)\
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |     S 中の '?' 文字は任意の 1 文字にマッチするお
     \     `ー'´   /     S の連続部分列を全探索すればいいお
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

match :: String -> String -> Int -> Bool
match s t offset = inner (drop offset s) t
  where
    inner _ [] = True
    inner (a : as) (b : bs)
      | a == b || a == '?' = inner as bs
      | otherwise = False

solve' :: StateT BS.ByteString IO ()
solve' = do
  !s <- BS.unpack <$> line'
  !t <- BS.unpack <$> line'
  let d = length s - length t
  printYn $ any (match s t) [0 .. d]
                                        / ̄ ̄ \ -、_
                                     _,ノ ヽ、__   / / ,〉、
                    2 回も RE を         (=)(= )/ ´/ /)
                    出してるじゃねぇか      (__人_) {    , ' ´,/
                                     '、`⌒ ´  V __, <´
                                      |     〈´/::::Λ
                                      |       ヤ::::::::::::::Λ
                                     `ュ`ー─ー V::::::::::::::Λ
                                     /ム _ , -./V::::::::::::::Λ、
                                   _,. -/:/===/´..::/i:::::::::::::::::::Vヘ
                               //./.::::{   | :::::/::::i::::::::::::::::::.∨}
                               j ::::::::>.:::::::l   |::::::::::::::i::::::::::::::::::::レ;
                              i :::r :〈 ::::::::i   |::::::::::::::::〉、:::::::::::::::::ノ
                               i :::| :::::'., ::::i   {:::::::::::::::::::::`::-==::イ
                                | :::| ::::::::',::::i   ',:::::::::::::::::::::::::::::::::::/

          ____
         / \  /\  キリッ
       / (ー)  (ー)\
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |     inner の停止条件でハマったお
     \     `ー'´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

C 問題

                                      / ̄ ̄\
                                     /ヽ、_    \
               N 人のユーザに M 個の        ( (● )    |
               コンテストの閲覧権限を付与     (ノ、__)      |
               していく                    |⌒´       |
                                      |   -‐`‐'チ-..|          / \
               1 つ or 全コンテストの閲覧     `'x::'´:::::::::::::::::::::::::7      /     >
               権限が付与されて行くとき、    __ヽ___::::::::::::〈.       \/7,/
               コンテスト参加可否クエリに     /::`ヽ::::::::::::::::::::::: ̄`:::::::`:..、   ,// /
               応えよ             l:::::::::::ヽ:::::::::::::::::::::::::::l:::::::::::::`:.、 l ′ 7ァ
                               |::::::::::::::ヽ::::::::::::::::::::::::!:::::::::::::::;イ l    /
                               `、::::::::::::∨::::::::::::::::::/:::::::::::::/::l. }‐...x'
                                  `、:::::::::::`、::::::::::/:::::::::::::/:::::〉/ニニソ
                                     `;:::::::::::::`,::::::::/::::::::::::/::::::::|/:::::::/
                                     `;:::::::::::::`,:::/:::::::::/ l::::::::::::!:::::::/
                                   〉::::::::::::::Y:::::::::/.  l:::::::::::l}::::/

          ____
         / \  /\  キリッ
       / (ー)  (ー)\      閲覧権限が剥奪されることは無いお
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |     全コンテスト閲覧権と各コンテスト閲覧権を
     \     `ー'´   /     別々に持てば、どのクエリも O(1) か O(log N) で処理できるお
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

solve :: StateT BS.ByteString IO ()
solve = do
  (!n, !m, !q) <- ints3'
  !qs <- U.replicateM q $ do
    int' >>= \case
      1 -> (1 :: Int,,) <$> int' <*> int'
      2 -> (2 :: Int,-1,) <$> int'
      3 -> (3 :: Int,,) <$> int' <*> int'

  sets <- VM.replicate n IS.empty
  done <- UM.replicate n False

  res <- (`U.mapMaybeM` qs) $ \case
    (1, pred -> !x, !y) -> do
      GM.modify sets (IS.insert y) x
      pure Nothing
    (2, -1, pred -> x) -> do
      GM.write done x True
      pure Nothing
    (3, pred -> x, !y) -> do
      b1 <- GM.read done x
      b2 <- IS.member y <$> GM.read sets x
      pure . Just $ b1 || b2

  printBSB $ unlinesBSB $ V.map ynBSB $ U.convert res
                                    / ̄ ̄\
                                   /ヽ、_    \
               Immutable に解こうとは      ( (● )    |
               思わねぇのか?           (ノ、__)      |
                                      |⌒´       |
                                   |   -‐`‐'チ-..|          / \
                                 `'x::'´:::::::::::::::::::::::::7      /     >
                                __ヽ___::::::::::::〈.       \/7,/
                                 /::`ヽ::::::::::::::::::::::: ̄`:::::::`:..、   ,// /
                               l:::::::::::ヽ:::::::::::::::::::::::::::l:::::::::::::`:.、 l ′ 7ァ
                               |::::::::::::::ヽ::::::::::::::::::::::::!:::::::::::::::;イ l    /
                               `、::::::::::::∨::::::::::::::::::/:::::::::::::/::l. }‐...x'
                                  `、:::::::::::`、::::::::::/:::::::::::::/:::::〉/ニニソ
                                     `;:::::::::::::`,::::::::/::::::::::::/::::::::|/:::::::/
                                     `;:::::::::::::`,:::/:::::::::/ l::::::::::::!:::::::/
                                   〉::::::::::::::Y:::::::::/.  l:::::::::::l}::::/

          ____
         / \  /\  キリッ
       / (ー)  (ー)\      Immutable に解くには、 scan してから mapMaybe すれば良いみたいだお
    /   ⌒(__人__)⌒ \     やる夫は逆に 2 回走査するのがしっくり来ないお
    |      |r┬-|    |
     \     `ー'´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

D 問題

                                      / ̄ ̄\
                                     /ヽ、_    \
                   問題文を読め        ( (● )    |
                                   (ノ、__)      |
                                    |⌒´       |
                                   |   -‐`‐'チ-..|          / \
                                 `'x::'´:::::::::::::::::::::::::7      /     >
                                __ヽ___::::::::::::〈.       \/7,/
                                 /::`ヽ::::::::::::::::::::::: ̄`:::::::`:..、   ,// /
                               l:::::::::::ヽ:::::::::::::::::::::::::::l:::::::::::::`:.、 l ′ 7ァ
                               |::::::::::::::ヽ::::::::::::::::::::::::!:::::::::::::::;イ l    /
                               `、::::::::::::∨::::::::::::::::::/:::::::::::::/::l. }‐...x'
                                  `、:::::::::::`、::::::::::/:::::::::::::/:::::〉/ニニソ
                                     `;:::::::::::::`,::::::::/::::::::::::/::::::::|/:::::::/
                                     `;:::::::::::::`,:::/:::::::::/ l::::::::::::!:::::::/
                                   〉::::::::::::::Y:::::::::/.  l:::::::::::l}::::/

          ____
         / \  /\  キリッ
       / (ー)  (ー)\      div, mod を取って頑張るお
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー'´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

solve :: StateT BS.ByteString IO ()
solve = do
  (!n, !d) <- ints2'
  !xs <- intsU'

  -- d = 0 の場合は例外として処理する
  when (d == 0) $ do
    let !xs' = U.modify VAI.sort xs
    let !len = length $ U.group xs'
    printBSB $ n - len
    liftIO exitSuccess

  -- x_i を D で割った余り (r_i) 事に
  -- x_i を D で割った商 (q_i) を集める
  let !byR =
        V.accumulate
          (flip (:))
          (V.replicate d [])
          . V.map (\x -> let (!q, !r) = x `divMod` d in (r, q))
          $ U.convert xs

  -- 商の差が 1 以下のグループ毎に、最大何要素を残せるか調べ、和を取る
  let eval :: [Int] -> Int
      eval =
        sum
          . map (f . {- 連長圧縮 -} map length . group)
          . HT.groupBy (\a b -> b - a <= 1)
          . U.toList
          . U.modify VAI.sort
          . U.fromList
        where
          -- DP
          f = uncurry max . foldl' step s0
            where
              s0 = (0, 0) :: (Int, Int)
              step (!from1, !from2) x = (from2 + x, max from2 from1)

  -- 最大何要素残るか
  let nRest = V.sum $ V.map eval byR

  -- 最小何要素消せば良いか
  printBSB $ n - nRest

E 問題

         ____
       /      \
      /|(●)⌒)  \
    /       <   \
    |   |(●)、_,)      |
     \             /
    ノ           \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

        ____
      /      \
     /  ─    ─\
   /    (⌒)  (⌒) \   分かんないお
    |       (__人__)   |
   \      ` ⌒´   /
   ノ            \
. /´                 ヽ
 |    l             \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

                                              / ̄ ̄\
                                            /    _ノ \
                            Upsolve しろ        |     (● ) )
                            死にたくなければな    |      (__人)
                                             |        `⌒´ノ
                                                |          }
                                           ', __   /
                                            ≦ニニ≧s。_
                                          ノニニニ二二エ≧s,
                                       。s≦ニニニ二二二二从
                                        /ニニニニニニニニニ二j
                                       jニニニ二二二二/二ニェ|
                                       ノニニニ二二二/二二二二|
                                       (ニ二二二二二/ニニニニエj
                                    ノ二二ニニニェ/ニニニニェノ
                                    /ェ二二ゝ二二7ニニニニェ/
                                     /ニニル' wニニ7二二二ニニ(
                                 /ェニル'    Wニニlニニニニ二ム
                                   /ェニ/    i!ェニlニニニニ二/
                                /ェニ二Y   ノエニ\ニニ二二入
                                \二二\ i!二ニニェ\ニニニニi!
                                 \二ニェ>ニニ二二二\ェニ二\
                                   \ニミjニニ二二二二二\ニニ二/
                                    ヽ jニニニニニニニニ/\ニノマ
                                        从ニニニ二二二/   八 j
                                         |ニニニ二二二二/   jエミ!
                                         |ニニニ二二二7    jェニム
  はいだお……                           └‐=ニ⌒ ̄7`' 7   , ノニニム
                                      lェニ二二l  孑个´ニニ二:ム
                                       lェニ二二l    ∧ェニ二二ム
                                         lェニ二二l     ∧ェニ二二i!

F 問題

         ____
       /      \
      /|(●)⌒)  \
    /       <   \
    |   |(●)、_,)      |
     \             /
    ノ           \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

        ____
      /      \
     /  ─    ─\
   /    (⌒)  (⌒) \   分かったお
    |       (__人__)   |
   \      ` ⌒´   /
   ノ            \
. /´                 ヽ
 |    l             \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

提出

G 問題

         ____
       /      \
      /|(●)⌒)  \
    /       <   \
    |   |(●)、_,)      |
     \             /
    ノ           \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

        ____
      /      \
     /  ─    ─\
   /    (⌒)  (⌒) \   分かんないお
    |       (__人__)   |
   \      ` ⌒´   /
   ノ            \
. /´                 ヽ
 |    l             \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

                                                 ___
                                           /     \
                                         /       ヽ
                                          | \   /   |
                        こういうことだろッ       | (●)  (●)  !
                                             | (__人_)   |
                   .             _             l   `⌒´     !
                   .    ヽニ二/´};;;;;_>.、        ヽ         / lヽ、
                            /〈 〈/ /::ヽ::::::>..、     _ >     <-‐/:::/
                   .        /_/ヘ_lヽゝー::ヽ:::::::::ノ7、/ト、 ノ    /ヽ-/∠__
                           ⊂ -'‐-、::` ̄`¨/:/ /:::::ヽ、   //:/:ー::;:-::::`ヽ
                                    ̄ ̄´`7ヽヽ、::::::/::`>.v'、:://<:::::::l}::l
                                    / ゝ \V, ':::::::::::::―'`ヽ、::ヽ:::ヽ:l|:::!
                                      `>、/ <:::::::::::::::::::::::::::::::::::\::ヽ:::||:::!
                                          />l__`≧_、::::::::::::::::::::::::::::::::::ヽ::/
                           ____>--――</ l  /    >、::ー:::::::::::::::::::::K
                      _>―'":; -――――ォ<   ,' / /  ヘV:>、::::::::::::::_ノ:::`ヽ、
                     ∠_::::::::::/    > '"´   l  / /      ヘV:::::::: ̄ ̄:::::::::::>===<
                     V `ヽ/  >'"   |    V,i´           ヾ、::::::::;><´ ___   _
                     ヽ、  〉'"     l    /         _  l/ ̄         `>、 ー
                       ̄`´ ̄`>、_ ヘ  / ー   -―    \ ` /                / ヽ
  まさか、やらない夫!?          _∠:::::l  /    ̄     `ヽ、\- /           /  /
                        r‐<ヽ::::::::::;>===r―┬==<  \ ヘ 〉 ,  /    ///
                       ノ`ヽ::::::〉<>.==┴‐ ┴-< 二`>、  !二二二二二彡_>'
                     >'"    }:////::::::::ヽ/:::ー:::::::::::::::::`>..、_ノ!/_____>'"

                              .|          /
                                !        /
                              .l    __/_
                                !   /  / \
                                ! /.   / _ノ  \
                              .l │.   /(● )(●)   AC. そのまさかだよ
                              .| │  /  (__人__)
                                ! │. /    ` ⌒´ノ    モノイド積を取ればいいだけだろ
                                ! │ /         }    常識的に考えろよ
                                | ノ./ヾ.ヘ     }
                          ..=ィ゙ニ| /、;i;i;ヾヘ  _ノ
                .       : :イ/{ / ̄ヾ}l!;i;i;iLc、>
                .       / '/,ム{ ∧  }ー-,-、《;i〈
                .       !:.,'〃´ハ{/  ハ::〃,=ヾミ;i
                .       :.:{/' 〃゙ヽ__ノヽi/´   }\
                .       :.:|!、/  ヽ::Y::/{  r、/ム .\
                .       !:.!ム    ヽj::ノ{   | ,';i;iム   ヽ.
                .       Ⅵマ\  _ ヽ';i乂__.ソ;i;i;i;i|     丶
                .       トj0l|Y´\{ }  Y;i;i;i;i;i;i;i;i;i;iト,     \
                .       `!0j;iト、  ヾ__.人;i;i;i;i;i;i;i;i;i;i;{         \
                .       〈ソ,∧ \  「 ! Y;i;i;i;i;i;i;i;i;iム
                .        j、;i;i;、  \___丿;i;i;i;i;i;i;i;i;i;iム
                .       /.:::∨;i;i`i.、___ノ;i\;i;i;i;i;i;i;i;i;i;i;iム
                .       ::::::::.∨;i;i|:;i;i;i;i;i;i;i;i;\;i;i;i;i;i;i;i;i;i;ム
                .       、_:::::::∨;i|:;i;i;i;i;i;i;i;i;i;i;i;丶:;i;i;i;i;i;i;i;ム
                .       ::ーニ=イ};i:!:;i;i;i;i;i;i;i;i;i;i;i;i;i;i\:;i;i;i;i;i;i;i〉
                .       ヽ:::::::::ノ;i:!:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i\:;i;i;/
                .        ヽ/;i;i:|:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i\:〉
                .       ../;i;i;i;i;i:|:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;\
                .       ,ゝ;i;i;i;i;i;i:|:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i/  丶
                .       i;i;i;i;i;i;i;i;i:|:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;/    \
                .       i;i;i;i;i;i;i;i;i:!:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i∧
                .       i;i;i;i;i;i;i;i;i:!:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i/. ム
                .       i;i;i;i;i;i;i;i;i:l:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i//マ___
                .       、i;i;i;i;i;i;i;i:|:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;}/イ;;;;;;;;;`!
                .       ';i;i;i;i;i;i;i;i:l:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;iム.;;;;;;;;;;;;;;;;;〉

        ____
        /     \
     /   ⌒  ⌒ \      平衡二分木も動的セグメント木も ac-library-hs に
   /    (●)  (●) \    入っているから言語アップデートが楽しみだお
    |   、" ゙)(__人__)"  )    ___________
   \      。` ⌒゚:j´ ,/ j゙~~| | |             |
__/          \  |__| | |             |
| | /   ,              \n||  | |             |
| | /   /         r.  ( こ) | |             |
| | | ⌒ ーnnn        |\ (⊆ソ .|_|___________|
 ̄ \__、("二) ̄ ̄ ̄ ̄ ̄l二二l二二  _|_|__|_

以上

        ____
      /      \
     /  ─    ─\
   /    (⌒)  (⌒) \   みんなも頑張って AtCoder を生き残ってくれお
    |       (__人__)   |   おすすめの言語は Haskell だお
   \      ` ⌒´   /
   ノ            \
. /´                 ヽ
 |    l             \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

                             .|          /
                               !        /
                             .l    __/_
                               !   /  / \
                               ! /.   / _ノ  \
                             .l │.   /(● )(●)   解けなかった問題は
                             .| │  /  (__人__)   今すぐ upsolve しろ!
                               ! │. /    ` ⌒´ノ
                               ! │ /         }
                               | ノ./ヾ.ヘ     }
                         ..=ィ゙ニ| /、;i;i;ヾヘ  _ノ
               .       : :イ/{ / ̄ヾ}l!;i;i;iLc、>
               .       / '/,ム{ ∧  }ー-,-、《;i〈
               .       !:.,'〃´ハ{/  ハ::〃,=ヾミ;i
               .       :.:{/' 〃゙ヽ__ノヽi/´   }\
               .       :.:|!、/  ヽ::Y::/{  r、/ム .\
               .       !:.!ム    ヽj::ノ{   | ,';i;iム   ヽ.
               .       Ⅵマ\  _ ヽ';i乂__.ソ;i;i;i;i|     丶
               .       トj0l|Y´\{ }  Y;i;i;i;i;i;i;i;i;i;iト,     \
               .       `!0j;iト、  ヾ__.人;i;i;i;i;i;i;i;i;i;i;{         \
               .       〈ソ,∧ \  「 ! Y;i;i;i;i;i;i;i;i;iム
               .        j、;i;i;、  \___丿;i;i;i;i;i;i;i;i;i;iム
               .       /.:::∨;i;i`i.、___ノ;i\;i;i;i;i;i;i;i;i;i;i;iム
               .       ::::::::.∨;i;i|:;i;i;i;i;i;i;i;i;\;i;i;i;i;i;i;i;i;i;ム
               .       、_:::::::∨;i|:;i;i;i;i;i;i;i;i;i;i;i;丶:;i;i;i;i;i;i;i;ム
               .       ::ーニ=イ};i:!:;i;i;i;i;i;i;i;i;i;i;i;i;i;i\:;i;i;i;i;i;i;i〉
               .       ヽ:::::::::ノ;i:!:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i\:;i;i;/
               .        ヽ/;i;i:|:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i\:〉
               .       ../;i;i;i;i;i:|:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;\
               .       ,ゝ;i;i;i;i;i;i:|:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i/  丶
               .       i;i;i;i;i;i;i;i;i:|:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;/    \
               .       i;i;i;i;i;i;i;i;i:!:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i∧
               .       i;i;i;i;i;i;i;i;i:!:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i/. ム
               .       i;i;i;i;i;i;i;i;i:l:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i//マ___
               .       、i;i;i;i;i;i;i;i:|:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;}/イ;;;;;;;;;`!
               .       ';i;i;i;i;i;i;i;i:l:;i;i;i;i;i;i;i;i;i;i;i;i;i;i;i;iム.;;;;;;;;;;;;;;;;;〉

AA のフォントは aahub_light をお借りしました。