딸기당근수박참외메론게임

n개의 단어를 b박자 주기로 반복할 때, 주어진 단어가 X번째로 외쳐지는 턴 번호를 구한다.

보통6수학이분 탐색누적 합구현아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

디디가 좋아하는 랜덤 게임 ~! 무슨 게임 ~! 게임 스타트!!

딸기당근수박참외메론게임♪

디디대학에서 하는 딸기당근수박참외메론게임의 규칙은 다음과 같다.

  1. 게임에 쓸 단어의 수 nn과 박자 수 bb를 정한다. 박자 수는 단어의 수보다 크거나 같아야 하고, 같은 단어가 여러 번 들어가도 된다.
  2. 정한 nn에 맞춰 사용할 단어 S1,S2,,SnS_1, S_2, \ldots, S_n을 정한다.
  3. ii번째 차례에는 아래 코드가 출력하는 것과 똑같이 단어를 외친다.
if (b == 1) printf("%s", S[1]);
else {
    if ((i - 1) % (2 * (b - 1)) + 1 < b) {
        for (int j = 1; j <= (i - 1) % (b - 1) + 1; j++)
            printf("%s ", S[(j - 1) % n + 1]);
    } else {
        for (int j = 1; j <= b - ((i - 1) % (b - 1)); j++)
            printf("%s ", S[(j - 1) % n + 1]);
    }
}

단어 집합 SS의 번호는 1부터 시작한다.

n=3n = 3, b=5b = 5이고 단어가 순서대로 king, god, gd이면 차례마다 외치는 말은 다음과 같다.

  1. king
  2. king god
  3. king god gd
  4. king god gd king
  5. king god gd king god
  6. king god gd king
  7. king god gd
  8. king god
  9. king
  10. king god

그 뒤로도 같은 방식으로 이어진다.

디디는 단어 kk가 외쳐진 횟수가 XX번이 되는 순간이 몇 번째 차례인지 궁금해졌다. 디디의 궁금증을 풀어 줄 프로그램을 작성하라.

입력

첫째 줄에 nnbb가 주어진다. (1n2×1051 \le n \le 2 \times 10^5, nb1012n \le b \le 10^{12})

둘째 줄에 단어 kkXX가 주어진다. (1X10121 \le X \le 10^{12})

셋째 줄에 게임에 쓸 단어 nn개가 공백으로 구분되어 주어진다. 모든 단어는 알파벳 소문자로 이루어지고, 길이는 10을 넘지 않는다.

출력

단어 kkXX번째로 외쳐지는 차례의 번호를 출력한다. 정답이 존재하는 입력만 주어진다.