#include #include using namespace std; using mint = atcoder::modint998244353; void fast_io() { ios_base::sync_with_stdio(false); cin.tie(nullptr); } int main() { fast_io(); int n, k; cin >> n >> k; const int M = 2e5 + 1; vector cnt(2 * M + 1); for (int i = 0; i < n; i++) { int l, r; cin >> l >> r; cnt[2 * l]++; cnt[2 * r - 1]--; } for (int i = 1; i <= 2 * M; i++) { cnt[i] += cnt[i - 1]; } mint ans = 1; for (int i = 1; i <= 2 * M; i++) { if (cnt[i - 1] >= cnt[i]) { continue; } int res = k - cnt[i - 1]; for (int j = 0; j < cnt[i] - cnt[i - 1]; j++) { ans *= max(0, res - j); } } ans = mint(k).pow(n) - ans; cout << ans.val() << endl; }