분탕

아직 제출이 없습니다시간 제한3초메모리 제한1024 MB

문제

길을 걸어가던 찬우는 바닥에서 11부터 2N2N까지의 정수가 차례로 쓰인 2N2N개의 돌들을 발견했다. 질서정연하게 정렬되어있는 돌들이 불편하게 느껴진 찬우는 돌의 순서를 마음대로 바꿔버리기로 했다! 그는 2N2N개의 돌들을 22개씩 짝지어 NN개의 쌍을 만든 후, 각각의 쌍에서 짝지어진 두 돌의 위치를 바꿔 새로운 돌의 수열 a_1,a_2,,a_2N\\{a\_1,a\_2,\ldots ,a\_{2N}\\}을 만들어버렸다.

자신의 손으로 순서가 엉망이 되어버린 돌들을 보며 흡족해하고 있던 찬우는 돌들을 보다가 재미있는 특징을 발견했는데, 바뀌어 버린 수열의 최장 감소 부분 수열의 길이가 22밖에 되지 않는다는 것이었다. 이 수열이 신기했던 찬우는 이를 사진으로 남기려고 했으나, 하필 배터리를 다 쓴 탓에 대신 자신이 짝지은 한 쌍의 돌 (X,Y)(X,Y)을 가져가기로 했다.

집에 돌아온 찬우는 방금 전 만든 수열을 복원하고 싶어졌지만, 자신이 가져온 돌 XXYY를 짝지었다는 것과, 돌의 총 개수 2N2N, 그리고 바꿨던 돌의 수열의 최장 감소 수열의 길이가 22였다는 사실 말고는 기억나는 것이 없다. 돌의 개수 2N2N과 가져온 돌의 쌍 XX, YY가 주어질 때, 조건을 만족하는 돌의 수열이 얼마나 많은지 알아보자!

입력

첫 번째 줄에 N,X,YN,X,Y가 공백으로 구분되어 주어진다. (1N500 000;1X,Y2N;XY1\le N\le 500\ 000; 1\leq X,Y\leq 2N; X\neq Y)

출력

조건을 만족하는 돌의 수열의 개수를 998,244,353998\\, 244\\, 353으로 나눈 나머지를 출력한다.

힌트

어떤 수열에서 몇 개의 수들을 제거해서 만든 부분 수열을 만들 수 있다. 이때 만들어진 부분 수열 중 내림차순으로 정렬된 가장 긴 부분 수열을 최장 감소 부분 수열이라고 한다.