AT_abc219_f [ABC219F] Cleaning Robot

Description

[problemUrl]: https://atcoder.jp/contests/abc219/tasks/abc219_f 無限に広がる二次元グリッドのマス $ (0,\ 0) $ に掃除ロボットが置かれています。 このロボットに、$ 4 $ 種類の文字 `L` 、`R` 、`U` 、`D` からなる文字列で表されたプログラムが与えられます。 ロボットは、与えられたプログラムの各文字を先頭の文字から順に読み、各文字について以下の行動を行います。 1. ロボットの現在地をマス $ (x,\ y) $ とする 2. 読んだ文字に応じて以下の通りに移動する: - `L` を読んだとき: マス $ (x-1,\ y) $ に移動する。 - `R` を読んだとき: マス $ (x+1,\ y) $ に移動する。 - `U` を読んだとき: マス $ (x,\ y-1) $ に移動する。 - `D` を読んだとき: マス $ (x,\ y+1) $ に移動する。 `L` 、`R` 、`U` 、`D` からなる文字列 $ S $ が与えられます。 ロボットが実行するプログラムは、文字列 $ S $ を $ K $ 個連接したものです。 ロボットが一度でも存在したことのあるマス(ロボットの初期位置であるマス $ (0,\ 0) $ を含む)は掃除されます。 ロボットがプログラムの実行を終えた後の時点で、掃除されているマスの個数を出力して下さい。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ S $ $ K $

Output Format

ロボットがプログラムの実行を終えた後の時点で、掃除されているマスの個数を出力せよ。

Explanation/Hint

### 制約 - $ S $ は `L` 、`R` 、`U` 、`D` からなる長さ $ 1 $ 以上 $ 2\ \times\ 10^5 $ 以下の文字列 - $ 1\ \leq\ K\ \leq\ 10^{12} $ ### Sample Explanation 1 ロボットが実行するプログラムは `RDRULRDRUL` です。ロボットは初期位置であるマス $ (0,\ 0) $ からはじめ、 $ (0,\ 0)\ \rightarrow\ (1,\ 0)\ \rightarrow\ (1,\ 1)\ \rightarrow\ (2,\ 1)\ \rightarrow\ (2,\ 0)\ \rightarrow\ (1,\ 0)\ \rightarrow\ (2,\ 0)\ \rightarrow\ (2,\ 1)\ \rightarrow\ (3,\ 1)\ \rightarrow\ (3,\ 0)\ \rightarrow\ (2,\ 0) $ と移動します。 その後掃除されているマスは、$ (0,\ 0),\ (1,\ 0),\ (1,\ 1),\ (2,\ 0),\ (2,\ 1),\ (3,\ 0),\ (3,\ 1) $ の $ 7 $ 個です。