시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 512 MB 32 17 17 62.963%

문제


 

세상에서 가장 달콤한 축제! 달콤새콤 올림픽이 개최되는 날이 되었다.

이번 올림픽에는 매년 그랬듯이 세 개의 나라, '사탕 나라', '초콜릿 나라', '쿠키 나라' 가 참가한다. 각 나라는 N명의 대표 선수를 선발했으며, 모든 선수 i는 달콤함 ai와 새콤함 bi를 갖고 있다. 모든 값들은 사전에 미리 측정되어 있다.

올림픽의 종목은 축제의 이름에서 볼 수 있듯이 딱 두 가지이다. 하나는 '달콤' 이며, 하나는 '새콤' 이다. 올림픽은 아래와 같은 방식으로 총 N경기를 진행한다.

  • 각 나라는 N명의 선수들을 내보낼 순서를 정한다. 모든 선수가 정확히 한 번씩 경기에 참여해야 한다.
  • 이제 N라운드 동안, 매 라운드마다 공평한 동전을 하나 던져 앞면이면 '달콤', 뒷면이면 '새콤' 을 진행한다.
  • 각 라운드에는 각 나라에서 해당 순서를 가진 한 명씩의 선수가 참여한다. 즉, 총 세 명이 경기를 하게 된다.
  • '달콤' 경기에서는 달콤함이 가장 높은 선수를 내보낸 나라가 항상 승리하며, '새콤' 경기에서는 새콤함이 가장 높은 선수를 내보낸 나라가 항상 승리한다.
  • 만약 동점이 발생한다면, 이번 올림픽의 개최지인 사탕 나라가 우선 순위를 가지며, 그 다음은 전년도 우승자인 초콜릿 나라, 마지막으로 쿠키 나라가 우선 순위를 갖는다.
  • 경기를 마친 후, 승리한 나라는 승점 1점을 얻는다. Tie Breaking이 있기 때문에, 항상 정확히 하나의 나라가 승점을 가져가게 된다.

올림픽은 각 라운드에 출전한 선수가 누구인지, 그리고 어떤 종목이 개최되었는지에 따라 총 (N!)3×2N 가지 서로 다른 형태로 개최될 수 있으며, 각 경우에 대해 개최될 확률은 모두 동일하다.

이번 개최지인 사탕 나라에서는 이번 올림픽에서 꼭 우승을 하고 싶어졌다. 이를 위해 연구에 몰두한 결과, 이상한 물약을 개발하게 되었고, 이 약은 안전하며, 먹는 것이 올림픽 규정에 어긋나지 않는다는 것을 알고 있다. 사탕 나라에서는 자국의 대표 선수 중 일부에게 물약을 마시도록 하여 우승 확률을 높이려 한다.

이상한 물약을 마신 선수는 달콤함이 La 이상 Ra 이하의 정수로, 새콤함이 Lb 이상 Rb 이하인 정수로 임의로 변한다. 모든 조합이 선택될 확률은 동일하다.

사탕 나라는 자국의 선수들 중 일부를 뽑아 이상한 물약을 먹게 함으로써, 얻는 승점의 기댓값을 최대화하고 싶다.

개최지인 사탕 나라를 위해, 어떤 선수들에게 이상한 물약을 줘야 할 지, 그리고 승점의 기댓값은 최대 얼마가 될 지 계산해보도록 하자.

입력

첫째 줄에 각 나라의 대표 선수의 수이자 경기가 진행될 라운드 수인 N과 물약의 효능에 관한 값 La, Ra, Lb, Rb가 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ L≤ Ra ≤ 1000, 1 ≤ Lb ≤ Rb ≤ 1000)

둘째 줄에 사탕 나라의 N명의 대표 선수의 달콤함 ai가 공백으로 구분되어 주어진다. (1 ≤ ai ≤ 1000)

셋째 줄에 사탕 나라의 N명의 대표 선수의 새콤함 bi가 공백으로 구분되어 주어진다. (1 ≤ bi ≤ 1000)

넷째 줄, 다섯째 줄에는 같은 형식으로 초콜릿 나라의 대표 선수들의 달콤함, 새콤함이 주어지며, 여섯째 줄, 일곱째 줄에는 쿠키 나라의 대표단에 대한 정보가 같은 방식으로 주어진다.

모든 달콤함과 새콤함은 1 이상 1000 이하의 정수이다.

입력으로 주어진 순서는 경기에 참여할 순서가 아닌, 각 나라가 (N!)가지 경우 중 하나를 선택하기 전의 상태임에 유의한다.

출력

사탕 나라가 이상한 물약을 마실 선수를 최적으로 선택했을 때, 사탕 나라가 이번 올림픽에서 얻을 승점의 기댓값을 기약분수 P/Q라 하자. 이 값이 유리수임은 증명된다.

이때, Q의 998,244,353에 대한 곱셈 역원 Q-1에 대해 첫 줄에 P×Q-1 mod 998,244,353을 출력한다.

그리고 둘째 줄에는 승점의 기댓값이 최대가 되도록 하기 위해 이상한 물약을 마실 선수의 수 K를 출력한다. (0 ≤ K ≤ N)

K가 0보다 크다면, 셋째 줄에 공백으로 구분하여 이상한 물약을 마실 선수의 번호를 출력한다. 같은 번호가 두 번 이상 나오면 안 되며, 모든 번호는 1 이상 N 이하의 정수여야 한다. 각 선수의 번호는 입력으로 주어진 순서대로 1, 2, ..., N이다.

만일 승점의 기댓값을 최대로 만드는 선수의 집합이 여러 가지라면 K가 최소인 집합을 출력해야 하며, 이러한 집합도 여러 가지일 경우엔 아무 것이나 하나만 출력한다.

예제 입력 1

3 1 10 1 1
1 10 1
1 1 1
10 10 10
100 100 100
10 10 10
100 100 100

예제 출력 1

798595483
2
1 3

경기가 '새콤' 으로 진행될 경우, 물약의 복용 여부에 상관없이 사탕 나라는 항상 패배한다.

경기가 '달콤' 일 경우, 2번 선수는 항상 승리하며, 1번 선수와 3번 선수는 물약을 먹을 경우에만 1/10의 확률로 승리할 수 있다.

따라서 1, 3번 선수는 항상 물약을 복용하는 것이 좋다.

그 이후 경기가 진행되면, 1번 선수와 3번 선수는 (경기가 '달콤'일 확률)×(물약이 달콤함을 10 이상으로 만들어줄 확률) = (1/2)×(1/10) = 1/20의 확률로 각각 승점 1점을 얻을 수 있고, 2번 선수는 (경기가 '달콤'일 확률) = 1/2의 확률로 승점 1점을 얻으므로 총 기댓값은 12/20 = 3/5 이 된다. 5의 998244353에 대한 곱셈 역원은 598946612이므로 첫째 줄의 출력은 3×598946612 mod 998244353 = 798595483이 된다.

예제 입력 2

3 2 4 2 5
1 3 5
1 4 6
4 4 4
5 5 5
4 4 4
5 5 5

예제 출력 2

83187031
2
1 2

1, 2번 선수는 물약을 먹지 않으면 항상 전패하므로 물약을 먹어보는 것이 낫고, 3번 선수는 물약을 먹어도 능력치가 전혀 상승하지 않으므로 먹지 않는 것이 이득이다.

예제 입력 3

5 7 10 14 16
2 17 8 9 19
11 15 8 9 20
3 9 5 8 7
8 2 4 9 6
3 3 8 5 4
8 1 2 9 6

예제 출력 3

59894666
2
3 1

최소 인원의 가능한 집합 중 아무 것이나 하나만 출력하면 되며, 집합 내의 선수 번호는 정렬되어 있지 않아도 상관이 없다.

힌트

XP에 대한 곱셈 역원 X-1이란, X×X-1 ≡ 1 mod P를 만족하는 정수를 말한다.