https://ac.nowcoder.com/acm/contest/78306/D
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5+5;
int n,m,vis[15],l[15],r[15],c[N],ans;
void dfs(int step){
if(step == m+1){
memset(c,0,sizeof c);
for(int i = 1;i<=m;i++){
if(vis[i]){
c[l[i]]++;
c[r[i]+1]--;
}
}
int falg = 1;
for(int i =1;i<=n;i++){
c[i]+=c[i-1];
if(c[i]<2) falg = 0;
}
if(!falg) return;
ans++;
return;
}
//取和不取
vis[step] = 1;
dfs(step+1);
vis[step] = 0;
dfs(step+1);
}
void solve() {
cin>>n>>m;
for(int i = 1;i<=m;i++) cin>>l[i]>>r[i];
dfs(1);
cout<<ans%998244353<<endl;
}
signed main() {
int t = 1;
// cin >> t;
while (t--) {
solve();
}
return 0;
}