#include using namespace std; #define int long long #define vi vector #define ii pair #define fi first #define sc second #define stoi stoll #define popcnt __builtin_popcount #define getbit(x, k) ((x >> k) & 1) #define all(x) (x).begin(),(x).end() #define FOR(i,j,k) for(int i=j; i> n >> m; FOR(i,0,m){ int x,y; cin >> x >> y; a[x-1].push_back(y-1); a[y-1].push_back(x-1); } int ans = 1; FOR(i,0,n) path[i] = false; FOR(i,0,n) if (!path[i]){ t = 0; s = 0; dfs(i); if (s == (t*2)) ans = (ans*2) % 998244353; else ans = 0; } cout << ans; } signed main() { cin.tie(0)->sync_with_stdio(0); freopen("in", "r", stdin); freopen("out", "w", stdout); int T = 1; // cin >> T; while (T--) { solve(); cout << '\n'; } cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n"; }