#include using namespace std; typedef long long ll; typedef long double ld; #define REP(i, n) for (int i = 0; i < (n); ++i) #define REPR(i, n) for (int i = n - 1; i >= 0; --i) #define FOR(i, m, n) for (int i = m; i < n; ++i) #define FORR(i, m, n) for (int i = m; i >= n; --i) #define ALL(v) (v).begin(),(v).end() templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> n >> m >> t; int logt=1; while((1LL<> a >> b; d[0][a][b]=true; } REP(i,logt){ REP(j,n){ REP(l,n){ if(d[i][j][l]){ REP(s,n){ if(d[i][l][s]) d[i+1][j][s]=true; } } } } } vector now(n); now[0]=true; int cnt=0; while(t){ if(t&1){ vector tmp(n); REP(i,n){ if(now[i]){ REP(j,n){ if(d[cnt][i][j]) tmp[j]=true; } } } swap(now,tmp); } t>>=1; cnt++; } int ans=0; REP(i,n) if(now[i]) ans++; cout << ans << endl; }