import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.next());
		int M = Integer.parseInt(sc.next());
		int C = Integer.parseInt(sc.next());
		ArrayList<Integer> listB = new ArrayList<>();
		int[][] listA = new int[N][M];
		for(int i = 0; i< M; i++) {
			listB.add(Integer.parseInt(sc.next()));
		}
		for(int i = 0; i< N; i++) {
			for(int j = 0; j < M; j++) {
				listA[i][j] = Integer.parseInt(sc.next());
			}
		}
		sc.close();

		int count = 0;
		for(int i = 0; i < N; i++) {
			int tmp = C;
			for(int j = 0; j < M; j++) {
				tmp += listA[i][j] * listB.get(j);
			}
			if(tmp > 0) count++;
		}

		System.out.println(count);
	}

} import java.util.ArrayList; ArrayList java.util import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.next());
		int M = Integer.parseInt(sc.next());
		int C = Integer.parseInt(sc.next());
		ArrayList<Integer> listB = new ArrayList<>();
		int[][] listA = new int[N][M];
		for(int i = 0; i< M; i++) {
			listB.add(Integer.parseInt(sc.next()));
		}
		for(int i = 0; i< N; i++) {
			for(int j = 0; j < M; j++) {
				listA[i][j] = Integer.parseInt(sc.next());
			}
		}
		sc.close();

		int count = 0;
		for(int i = 0; i < N; i++) {
			int tmp = C;
			for(int j = 0; j < M; j++) {
				tmp += listA[i][j] * listB.get(j);
			}
			if(tmp > 0) count++;
		}

		System.out.println(count);
	}

} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.next());
		int M = Integer.parseInt(sc.next());
		int C = Integer.parseInt(sc.next());
		ArrayList<Integer> listB = new ArrayList<>();
		int[][] listA = new int[N][M];
		for(int i = 0; i< M; i++) {
			listB.add(Integer.parseInt(sc.next()));
		}
		for(int i = 0; i< N; i++) {
			for(int j = 0; j < M; j++) {
				listA[i][j] = Integer.parseInt(sc.next());
			}
		}
		sc.close();

		int count = 0;
		for(int i = 0; i < N; i++) {
			int tmp = C;
			for(int j = 0; j < M; j++) {
				tmp += listA[i][j] * listB.get(j);
			}
			if(tmp > 0) count++;
		}

		System.out.println(count);
	} main {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.next());
		int M = Integer.parseInt(sc.next());
		int C = Integer.parseInt(sc.next());
		ArrayList<Integer> listB = new ArrayList<>();
		int[][] listA = new int[N][M];
		for(int i = 0; i< M; i++) {
			listB.add(Integer.parseInt(sc.next()));
		}
		for(int i = 0; i< N; i++) {
			for(int j = 0; j < M; j++) {
				listA[i][j] = Integer.parseInt(sc.next());
			}
		}
		sc.close();

		int count = 0;
		for(int i = 0; i < N; i++) {
			int tmp = C;
			for(int j = 0; j < M; j++) {
				tmp += listA[i][j] * listB.get(j);
			}
			if(tmp > 0) count++;
		}

		System.out.println(count);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = Integer.parseInt(sc.next()); N Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int M = Integer.parseInt(sc.next()); M Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int C = Integer.parseInt(sc.next()); C Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc ArrayList<Integer> listB = new ArrayList<>(); listB new ArrayList<>() int[][] listA = new int[N][M]; listA new int[N][M] N M for(int i = 0; i< M; i++) {
			listB.add(Integer.parseInt(sc.next()));
		} int i = 0; int i = 0; i 0 i< M i M i++ i++ i {
			listB.add(Integer.parseInt(sc.next()));
		} {
			listB.add(Integer.parseInt(sc.next()));
		} listB.add(Integer.parseInt(sc.next())) listB.add listB Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc for(int i = 0; i< N; i++) {
			for(int j = 0; j < M; j++) {
				listA[i][j] = Integer.parseInt(sc.next());
			}
		} int i = 0; int i = 0; i 0 i< N i N i++ i++ i {
			for(int j = 0; j < M; j++) {
				listA[i][j] = Integer.parseInt(sc.next());
			}
		} {
			for(int j = 0; j < M; j++) {
				listA[i][j] = Integer.parseInt(sc.next());
			}
		} for(int j = 0; j < M; j++) {
				listA[i][j] = Integer.parseInt(sc.next());
			} int j = 0; int j = 0; j 0 j < M j M j++ j++ j {
				listA[i][j] = Integer.parseInt(sc.next());
			} {
				listA[i][j] = Integer.parseInt(sc.next());
			} listA[i][j] = Integer.parseInt(sc.next()) listA[i][j] listA[i] listA i j Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc sc.close() sc.close sc int count = 0; count 0 for(int i = 0; i < N; i++) {
			int tmp = C;
			for(int j = 0; j < M; j++) {
				tmp += listA[i][j] * listB.get(j);
			}
			if(tmp > 0) count++;
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			int tmp = C;
			for(int j = 0; j < M; j++) {
				tmp += listA[i][j] * listB.get(j);
			}
			if(tmp > 0) count++;
		} {
			int tmp = C;
			for(int j = 0; j < M; j++) {
				tmp += listA[i][j] * listB.get(j);
			}
			if(tmp > 0) count++;
		} int tmp = C; tmp C for(int j = 0; j < M; j++) {
				tmp += listA[i][j] * listB.get(j);
			} int j = 0; int j = 0; j 0 j < M j M j++ j++ j {
				tmp += listA[i][j] * listB.get(j);
			} {
				tmp += listA[i][j] * listB.get(j);
			} tmp += listA[i][j] * listB.get(j) tmp listA[i][j] * listB.get(j) listA[i][j] listA[i] listA i j listB.get(j) listB.get listB j if(tmp > 0) count++; tmp > 0 tmp 0 count++ count System.out.println(count) System.out.println System.out System System.out count String[] args args public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.next());
		int M = Integer.parseInt(sc.next());
		int C = Integer.parseInt(sc.next());
		ArrayList<Integer> listB = new ArrayList<>();
		int[][] listA = new int[N][M];
		for(int i = 0; i< M; i++) {
			listB.add(Integer.parseInt(sc.next()));
		}
		for(int i = 0; i< N; i++) {
			for(int j = 0; j < M; j++) {
				listA[i][j] = Integer.parseInt(sc.next());
			}
		}
		sc.close();

		int count = 0;
		for(int i = 0; i < N; i++) {
			int tmp = C;
			for(int j = 0; j < M; j++) {
				tmp += listA[i][j] * listB.get(j);
			}
			if(tmp > 0) count++;
		}

		System.out.println(count);
	}

} public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.next());
		int M = Integer.parseInt(sc.next());
		int C = Integer.parseInt(sc.next());
		ArrayList<Integer> listB = new ArrayList<>();
		int[][] listA = new int[N][M];
		for(int i = 0; i< M; i++) {
			listB.add(Integer.parseInt(sc.next()));
		}
		for(int i = 0; i< N; i++) {
			for(int j = 0; j < M; j++) {
				listA[i][j] = Integer.parseInt(sc.next());
			}
		}
		sc.close();

		int count = 0;
		for(int i = 0; i < N; i++) {
			int tmp = C;
			for(int j = 0; j < M; j++) {
				tmp += listA[i][j] * listB.get(j);
			}
			if(tmp > 0) count++;
		}

		System.out.println(count);
	}

} Main
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.next());
		int M = Integer.parseInt(sc.next());
		int C = Integer.parseInt(sc.next());
		ArrayList<Integer> listB = new ArrayList<>();
		int[][] listA = new int[N][M];
		for(int i = 0; i< M; i++) {
			listB.add(Integer.parseInt(sc.next()));
		}
		for(int i = 0; i< N; i++) {
			for(int j = 0; j < M; j++) {
				listA[i][j] = Integer.parseInt(sc.next());
			}
		}
		sc.close();

		int count = 0;
		for(int i = 0; i < N; i++) {
			int tmp = C;
			for(int j = 0; j < M; j++) {
				tmp += listA[i][j] * listB.get(j);
			}
			if(tmp > 0) count++;
		}

		System.out.println(count);
	}

}
