만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Keep It Cool

시간 제한1초메모리 제한512 MB

요약
모든 쌍 (a, b)를 배열하는 순열 중 세 쌍 사이 순서 규칙과 m개의 순서 제약을 지키는 경우의 수를 998244353으로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 비트 연산
정답자
아직 제출이 없습니다

문제

1≤a<b≤n1 \leq a < b \leq n 을 만족하는 모든 쌍 (a,b)(a, b)의 집합을 생각하자. 이 쌍들을 모두 나열한 순열은 1≤a<b<c≤n1 \leq a < b < c \leq n 인 임의의 aa, bb, cc에 대해 쌍 (a,c)(a, c)가 순열에서 (a,b)(a, b)와 (b,c)(b, c) 사이에 놓일 때 균형 잡힌 순열이라고 한다. 즉 세 쌍은 (a,b),(a,c),(b,c)(a, b), (a, c), (b, c) 순서로 나오거나 (b,c),(a,c),(a,b)(b, c), (a, c), (a, b) 순서로 나와야 한다.

순열에는 추가로 mm개의 제약이 있다. ii번째 제약은 쌍 (ai,bi)(a_i, b_i)가 쌍 (ci,di)(c_i, d_i)보다 순열에서 앞에 나와야 한다는 것이다. 이 mm개의 제약을 모두 만족하는 균형 잡힌 순열의 개수를 구하라.

입력

첫 줄에 정수 nn과 mm (2≤n≤102 \le n \le 10, 0≤m≤100 \le m \le 10)이 주어진다. 이어지는 mm개의 줄에는 정수 aia_i, bib_i, cic_i, did_i (1≤ai<bi≤n1 \le a_i < b_i \le n, 1≤ci<di≤n1 \le c_i < d_i \le n)가 주어진다. 쌍 (ai,bi)(a_i, b_i)와 (ci,di)(c_i, d_i)는 서로 다르다.

출력

모든 ii에 대해 (ai,bi)(a_i, b_i)가 (ci,di)(c_i, d_i)보다 먼저 나오는 균형 잡힌 순열의 개수를 소수 998 244 353998\,244\,353으로 나눈 나머지로 출력하라.

힌트

두 번째 입력에서 조건을 만족하는 순열은 (1,2),(1,3),(1,4),(2,3),(2,4),(3,4)(1,2), (1,3), (1,4), (2,3), (2,4), (3,4) 와 (1,2),(1,3),(2,3),(1,4),(2,4),(3,4)(1,2), (1,3), (2,3), (1,4), (2,4), (3,4) 이다.

예제2

  1. 예제 1

    입력
    2 0
    
    예상 출력
    1
    
  2. 예제 2

    입력
    4 3
    1 2 2 3
    1 2 3 4
    2 3 3 4
    
    예상 출력
    2