#include #include using namespace std; using namespace atcoder; typedef modint998244353 mint; typedef long long ll; int main(){ int n, m; cin >> n >> m; scc_graph scc(2*n); vector l(2*n), r(2*n); for (int i=0; i> l[i] >> r[i]; l[i+n] = m-1-r[i]; r[i+n] = m-1-l[i]; } for (int i=0; i<2*n; i++){ for (int j=i+1; j<2*n; j++){ if (min(r[i], r[j]) - max(l[i], l[j]) > 0){ scc.add_edge(i, (n+j)%(2*n)); scc.add_edge(j, (n+i)%(2*n)); } } } vector> g = scc.scc(); vector moto(2*n); for (int i=0; i