#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops,-ffloat-store")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,fma")
using namespace std;
const int mod = 998244353;
const int maxn = 3e5 + 5;
int x[maxn], l[maxn], r[maxn], u[25], v[25];
int dp[maxn][50], fct[maxn], inv[maxn], n, m;
bool ok[maxn];
void readf() {
  cin >> n >> m;
  for (int i = 1; i <= n; ++i) {
    cin >> l[i] >> r[i];
    x[l[i]]++;
    x[r[i] + 1]--;
  }
  for (int i = 0; i < m; ++i) {
    cin >> u[i] >> v[i];
  }
  for (int i = 1; i <= n; ++i) x[i] += x[i - 1];
}
int pw(int A, int B) {
  int tmp = 1;
  for (; B; A = 1LL * A * A % mod, B >>= 1)
    if (B & 1) tmp = 1LL * tmp * A % mod;
  return tmp;
}
inline int C(int K, int N) {
  if (N < 0 || K < 0) return 0;
  if (K > N) return 0;
  int TS = fct[N];
  int MS = inv[N - K] * 1LL * inv[K] % mod;
  return 1LL * TS * MS % mod;
}
inline int get(int L, int R, int T) {
  if (R < L) return 0;
  return (dp[R][T] - dp[L - 1][T] + mod) % mod;
}
void solve() {
  fct[0] = 1;
  for (int i = 1; i <= n; ++i) fct[i] = 1LL * fct[i - 1] * i % mod;
  inv[n] = pw(fct[n], mod - 2);
  for (int i = n - 1; i >= 0; --i) inv[i] = 1LL * (i + 1) * inv[i + 1] % mod;
  for (int i = 1; i <= n; ++i)
    for (int j = 0; j <= 2 * m; ++j)
      dp[i][j] = (dp[i - 1][j] + C(i - j, x[i] - j)) % mod;
  int ans = 0;
  for (int mask = 0; mask < (1 << m); ++mask) {
    int L = 1, R = n;
    for (int i = 0; i < m; ++i) ok[u[i]] = ok[v[i]] = 0;
    int sl = 0;
    for (int i = 0; i < m; ++i)
      if ((((mask) >> (i)) & 1)) {
        if (ok[u[i]] == 0) {
          L = max(L, l[u[i]]);
          R = min(R, r[u[i]]);
          sl++;
        }
        if (ok[v[i]] == 0) {
          L = max(L, l[v[i]]);
          R = min(R, r[v[i]]);
          sl++;
        }
        ok[u[i]] = ok[v[i]] = 1;
      }
    if (__builtin_popcount((mask)) & 1)
      ans = (ans - get(L, R, sl)) % mod;
    else
      ans = (ans + get(L, R, sl)) % mod;
  }
  cout << (ans + mod) % mod << '\n';
}
int main() {
  srand(time(NULL));
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  readf();
  solve();
}
