수열의 합
시간 제한1.5초메모리 제한1024 MB
H(N,S,L)과 H(1,X,X)가 998244353에 대해 합동이 되는 가장 작은 음이 아닌 정수 X를 구하거나, 없으면 -1을 출력한다.
문제
2024년 2학기는 지금까지 MatKor Cup을 주도하던 동우, 재우, 종우를 비롯한 많은 사람들의 마지막 학기이다. MatKor는 특별한 사건 없이 한 학기가 지나갔지만, 국가적으로 평화롭지는 않던 연말이 지나고 2025년이 되었다. 재우는 올해 1월 1일에도 떠오르는 태양을 보며 올해는 면허를 따야지 다짐한다.
재우는 2025년이 밝고 이라는 것에 매우 놀랐다. 심지어 재우는 도 성립하는 것을 보고 매우 놀라 동우에게 말했다. 동우는 이를 보더니 두 식은 동치가 아니냐며 일침을 날렸다.

옆에서 이 모습을 지켜보던 마음씨 착한 도훈이는 재우를 위로해 주며, 재우에게 동우 몰래 과 을 이용한 해시 인증 체계를 만들자고 제안했다.
먼저 어떤 수열 에 함수 를 원소들의 세제곱의 합을 의 거듭제곱 취한 꼴로 정의한다. 즉, 아래와 같이 정의된다.
\[T\left( A \right) =3^{\sum_{i=1}^NA_i^3}\]
인증을 위해 먼저 개인키로 세 정수 , , 을 준비한다. 이제 수열의 길이가 이며, 모든 원소는 이상 이하의 정수이고, 모든 원소의 합이 인 수열의 집합을 라 하자. 즉, 아래와 같이 정의된다.
\[\mathbb{A}\left( N,S,L \right) =\left\{ A\in{\mathbb{Z}_{L+1}}^N\middle |\sum_{i=1}^NA_i=S \right\}\]
이제 해시 함수 은 모든 의 원소에 대해 값의 합으로 정의한다. 즉, 아래와 같이 정의된다. 만약 이라면 이다.
\[\mathbb{H}\left( N,S,L \right) =\sum_{A\in\mathbb{A}\left( N,S,L \right)}T\left( A \right)\]
재우와 도훈이는 이제 새로운 인증 요청이 들어오면 를 통해 계산된 해시값을 비교해 인증할 수 있다. 그리고 C++을 좋아하는 두 명은 큰 수 연산이 귀찮아 해시값의 모듈로를 통해 비교하고자 한다. 즉, 올바른 키가 이고, 입력된 키가 일 때, 에 대해 인지 검사해 성립한다면 올바른 인증이라고 판단할 것이다.
이제 재우는 이 해시가 안전한지 검사하기 위해 해시 충돌의 가능성을 알아보려 한다. 즉, 이지만, 가 성립하는 경우가 있는지 알아보려 한다. 재우는 특히 키 가 주어질 때, 를 만족하는 음이 아닌 정수 를 찾고 싶다.
재우를 도와 주어진 에 대해 해시 충돌을 일으킬 수 있는 가 있다면 찾아보자.
입력
첫 번째 줄에 수열의 길이 , 수열의 합 , 원소의 최댓값을 의미하는 이 공백으로 구분되어 주어진다.
출력
첫 번째 줄에 주어진 조건을 만족하는 음이 아닌 정수 가 존재하면 의 최솟값을, 존재하지 않는다면 -1을 출력한다.