import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.HashSet; import java.util.PriorityQueue; import java.util.Set; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] sa = br.readLine().split(" "); int n = Integer.parseInt(sa[0]); int m = Integer.parseInt(sa[1]); int k = Integer.parseInt(sa[2]); int[] in = new int[n]; Set set = new HashSet<>(); for (int i = 0; i < m; i++) { sa = br.readLine().split(" "); int a = Integer.parseInt(sa[0]) - 1; int b = Integer.parseInt(sa[1]) - 1; in[b]++; set.add(a); } br.close(); long ans = 0; for (int e : set) { ans += k - in[e]; } if (set.size() <= k) { PriorityQueue que = new PriorityQueue<>((o1, o2) -> o2.in - o1.in); for (int i = 0; i < n; i++) { if (!set.contains(i)) { Obj o = new Obj(); o.i = i; o.in = in[i]; que.add(o); } } int rem = k + 1 - set.size(); for (int i = 0; i < rem; i++) { Obj o = que.poll(); ans += k - o.in; } } System.out.println(ans); } static class Obj { int i, in; } }