#include #include using namespace atcoder; using namespace std; using ll=long long; using ld=long double; ld pie=3.141592653589793; ll inf=922775807; ll mod=998244353; vector>mul(vector>&a,vector>&b){ vector>c(a.size(),vector(b[0].size(),0)); for (ll i = 0; i < a.size(); i++) { for (ll j = 0; j < b[0].size(); j++) { for (ll k = 0; k < a[0].size(); k++) { c[i][j]+=(a[i][k]*b[k][j])%mod; if (c[i][j]>mod) { c[i][j]-=mod; } } } } return c; } vector>matpow(vector>a,ll n){ vector>b(a.size(),vector(a.size(),0)); for (ll i = 0; i < a.size(); i++) { b[i][i]=1; } while (n>0) { if (n%2) { b=mul(a,b); n-=1; }else{ a=mul(a,a); n/=2; } } return b; } int main(){ ll n,m,t; cin >> n >> m >> t; vector>g(n,vector(n,0)); for (ll i = 0; i < m; i++) { ll s,tt; cin >> s >> tt; g[s][tt]=1; g[tt][s]=1; } vector>gg=matpow(g,t); ll ans=0; cout << gg[0][0] << endl; }