#include using namespace std; using ll=long long; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rrep(i, s, n) for (int i = (s); i < (int)(n); i++) template bool chmin(T& a, T b){if(a > b){a = b; return true;} return false;} template bool chmax(T& a, T b){if(a < b){a = b; return true;} return false;} const long long mod=998244353; const long long mod2=469762049; const long long mod100=1000000007; ll N,M,K; int A[200009],B[200009]; vectorG[200009]; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cin>>N>>M>>K; int out_cnt[N+1],in_cnt[N+1]; for(int i=1;i<=N;i++){ out_cnt[i]=0; in_cnt[i]=0; } for(int i=1;i<=M;i++){ cin>>A[i]>>B[i]; G[A[i]].push_back(B[i]); out_cnt[A[i]]++; in_cnt[B[i]]++; } vectordat; for(int i=1;i<=N;i++){ if(out_cnt[i]>=1) dat.push_back(i); } if((int)dat.size()>=K+1){ ll ans=0; ans+=K*dat.size(); for(auto p:dat){ ans-=in_cnt[p]; //cout<dat2; for(int i=1;i<=N;i++){ if(out_cnt[i]==0) dat2.push_back(in_cnt[i]); } sort(dat2.rbegin(),dat2.rend()); for(int i=0;i<(K+1)-(int)dat.size();i++){ ans-=dat2[i]; } cout<