#include using namespace std; #include using namespace atcoder; #define ll long long #define rep(i, n) for (int i = 0; i < (n); i++) #define P pair #define LP pair #define fi first #define se second #define pb push_back #define eb emplace_back #define all(s) s.begin(), s.end() #define rall(s) s.rbegin(), s.rend() template void chmax(T& a, T b) { a = max(a, b); }; template void chmin(T& a, T b) { a = min(a, b); }; vector to[1005]; using mint = modint998244353; int main() { int n,m,t; cin >> n >> m >> t; rep(i,m) { int s, t; cin >> s >> t; to[s].pb(t); to[t].pb(s); } vector dp(t+1, vector(n)); dp[0][0] = 1; rep(i,t) { rep(j,n) { for (int nv : to[j]) { dp[i+1][j] += dp[i][nv]; } } } cout << dp[t][0].val() << endl; return 0; }