# https://yukicoder.me/problems/no/2197 import math MOD = 998244353 def main(): N, K = map(int, input().split()) lr = [] max_r = 0 for _ in range(N): l, r = map(int, input().split()) lr.append((l, r)) max_r = max(max_r, r) in_events = [[] for _ in range(max_r + 1)] out_events = [0 for _ in range(max_r + 1)] for l, r in lr: in_events[l].append(r) visit_num = 0 ans = 1 for i in range(max_r + 1): # out visit_num -= out_events[i] # in for r in in_events[i]: ans *= (K - visit_num) ans %= MOD visit_num += 1 out_events[r] += 1 answer = pow(K, N, MOD) answer -= ans answer %= MOD print(answer) if __name__ == "__main__": main()