IPvK
시간 제한8초메모리 제한1024 MB
후보 K명과 유권자 N명이 주어질 때, 각 득표수가 0에서 255 사이이고 합이 N인 모든 K개 수열의 곱의 합을 998244353으로 나눈 나머지를 구합니다.
문제
4명의 후보 중 한 명을 뽑는 선거의 투표 결과를 보고 어떤 사람이 이렇게 말했다. "이 숫자는 IPv4 주소처럼 보이네."
이를 임의의 K개 순서쌍으로 일반화하기로 한다. 즉 임의의 양의 정수 K에 대해, IPvK 주소를 0 이상 255 이하의 정수 K개를 .로 이어 붙인 것으로 정의한다.
이제 N명의 유권자와 K명의 후보로 이루어진 선거가 치러지려고 한다. 각 후보에게는 1부터 K까지 번호가 붙어 있다. 각 유권자는 K명의 후보 중 한 명에게 투표한다. 기권, 무효표, 안분표는 없다. 따라서 각 후보의 득표수는 0 이상의 정수이고, 전체 득표수의 합은 N표다. 무기명 투표이므로 어떤 유권자가 어떤 후보에게 투표했는지는 구별하지 않는다.
K명의 후보의 득표수를 1번 후보부터 순서대로 .로 이어 붙인 문자열 중 IPvK 주소로 볼 수 있는 것들의 집합을 생각한다. 각각에 대해 K명 후보 득표수의 곱을 구하고, 그 모든 값의 합을 998,244,353으로 나눈 나머지를 구하라.
입력
입력은 50개 이하의 데이터셋으로 이루어진다. 각 데이터셋은 다음 형식으로 주어진다.
K N
정수 K와 N이 주어진다. K는 후보의 수이며 1 ≤ K ≤ 2,000을 만족한다. N은 유권자의 수이며 1 ≤ N ≤ K × 255를 만족한다. 입력의 끝은 0 두 개로 이루어진 줄로 표시된다.
출력
각 데이터셋에 대해 답을 한 줄에 출력하라.
힌트
첫 번째 데이터셋에서는 4명의 후보의 득표수의 곱이 항상 0이므로 그 합도 0이다.
두 번째 데이터셋에서는 후보 2명이 각각 255표를 얻은 경우, 그리고 그 경우에만 득표수를 이어 붙인 것이 IPv2 주소로 볼 수 있다. 따라서 답은 255 × 255 = 65025이다.