#include #include using namespace std; using ll = long long; using namespace atcoder; using mint = modint998244353; int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); /* N!通りの並べ方のうち、a_i != a_j となるものについて a_i > a_j となるパターンは N!/2 通り よって、全パターンの和は1つのパターンについて a_i != a_j となる(i> N; vector B(N), C(N), X; vector W(N); for (int i=0; i> B[i] >> C[i]; C[i]++; X.push_back(B[i]); X.push_back(C[i]); W[i] = mint(C[i]-B[i]).inv(); } sort(X.begin(), X.end()); X.erase(unique(X.begin(), X.end()), X.end()); for (int i=0; i V1(M+1), V2(M+1); for (int i=0; i