만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

이상한 수열

시간 제한1초메모리 제한64 MB

요약
처음 N개 항이 주어지고 이후 각 항은 그 이전까지 등장한 서로 다른 값의 개수와 같을 때 M번째 항을 구합니다.
난이도

보통10점 중 5점

유형
시뮬레이션, 해시맵, 수학
정답자
아직 제출이 없습니다

문제

승현이는 다음 규칙으로 수열 BB를 만들었다.

  • 1≤i≤N1 \le i \le N이면 Bi=SiB_i = S_i
  • i>Ni > N이면 BiB_i는 B1,B2,…,Bi−1B_1, B_2, \dots, B_{i-1}에 나오는 서로 다른 수의 개수

여기서 SS는 승현이가 혼자 생각해 낸 길이 NN인 수열이다.

승현이는 수열 BB의 MM번째 항을 알고 싶어 한다. 승현이를 대신해 그 값을 구하는 프로그램을 작성하여라.

입력

첫째 줄에 수열 SS의 길이 NN이 주어진다.

둘째 줄에 S1,S2,…,SNS_1, S_2, \dots, S_N이 공백으로 구분되어 차례대로 주어진다.

셋째 줄에 MM이 주어진다.

  • 1≤N≤500001 \le N \le 50000
  • 1≤M≤1091 \le M \le 10^9이고 MM은 자연수
  • 수열 SS의 각 원소는 정수이고 −1000000≤Si≤1000000-1000000 \le S_i \le 1000000이다.

출력

수열 BB의 MM번째 항을 출력한다.

힌트

N=4N = 4이고 S=(2,13,−7,2)S = (2, 13, -7, 2)이면 수열 BB의 처음 아홉 항은 2,13,−7,2,3,4,5,6,72, 13, -7, 2, 3, 4, 5, 6, 7이다.

예제3

  1. 예제 1

    입력
    4
    2 13 -7 2
    9
    
    예상 출력
    7
    
  2. 예제 2

    입력
    4
    2 13 -7 2
    5
    
    예상 출력
    3
    
  3. 예제 3

    입력
    1
    5
    1
    
    예상 출력
    5