수열 생성하기
시간 제한2초메모리 제한512 MB
수열 (1)에서 시작해 끝에 1 또는 m을 붙이거나 인접한 두 원소 사이에 그 사이 값을 넣는 연산을 n번 적용해 얻는 순서쌍의 개수를 998244353으로 나눈 나머지로 구한다.
문제
정수 수열의 수열 를 생각하자. 처음에 이다. 그다음 을 다음과 같이 만든다.
를 수열 의 길이, 를 의 번째 원소라고 하자. 그러면 의 길이는 이고, 에서 다음 두 연산 중 하나로 얻을 수 있다.
- 새 수열의 번째 원소로 또는 주어진 정수 을 쓴다.
- 인덱스 ()를 골라 또는 인 정수 를 선택하고, 와 사이에 넣는다. 오른쪽 부분의 인덱스는 씩 밀린다.
과 이 주어질 때, 서로 다른 수열의 순서쌍 의 개수를 구하자. 두 순서쌍은 이상 이하의 어떤 에 대해서라도 가 다르면 서로 다르다고 본다. 답이 클 수 있으므로 으로 나눈 나머지를 출력한다.
입력
입력은 한 줄로 이루어지며, 두 정수 과 이 주어진다. (, )
출력
서로 다른 수열의 순서쌍 의 개수를 으로 나눈 나머지를 출력한다.
힌트
첫 번째 예제에서 가능한 순서쌍은 다음과 같다.
- (첫 번째 연산), 그다음 (두 번째 연산);
- (첫 번째 연산), 그다음 (첫 번째 연산);
- (첫 번째 연산), 그다음 (첫 번째 연산);
- (첫 번째 연산), 그다음 (첫 번째 연산);
- (첫 번째 연산), 그다음 (첫 번째 연산).
따라서 답은 이다.