import java.util.Scanner;

public class Main {
    private static final int MOD = 1_000_000_007;
    private static final String YES = "Yes";
    private static final String NO = "No";

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int M = sc.nextInt();
        int C = sc.nextInt();
        int[] B = new int[M];
        for (int i=0; i<M; i++) {
            B[i] = sc.nextInt();
        }

        int[][] A = new int[N][M];
        for (int i=0; i<N; i++) {
            for (int j=0; j<M; j++) {
                A[i][j] = sc.nextInt();
            }

        }

        System.out.println(solve(N, M, C, B, A));
    }

    private static int solve(int N, int M, int C, int[] B, int[][] A) {
        int count = 0;

        for (int i=0; i<N; i++) {
            int value = 0;
            for (int j=0; j<M; j++) {
                value += A[i][j] * B[j];
            }
            value += C;

            if (value > 0) count++;
        }

        return count;
    }
} import java.util.Scanner; Scanner java.util public class Main {
    private static final int MOD = 1_000_000_007;
    private static final String YES = "Yes";
    private static final String NO = "No";

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int M = sc.nextInt();
        int C = sc.nextInt();
        int[] B = new int[M];
        for (int i=0; i<M; i++) {
            B[i] = sc.nextInt();
        }

        int[][] A = new int[N][M];
        for (int i=0; i<N; i++) {
            for (int j=0; j<M; j++) {
                A[i][j] = sc.nextInt();
            }

        }

        System.out.println(solve(N, M, C, B, A));
    }

    private static int solve(int N, int M, int C, int[] B, int[][] A) {
        int count = 0;

        for (int i=0; i<N; i++) {
            int value = 0;
            for (int j=0; j<M; j++) {
                value += A[i][j] * B[j];
            }
            value += C;

            if (value > 0) count++;
        }

        return count;
    }
} Main private static final int MOD = 1_000_000_007; MOD 1_000_000_007 private static final String YES = "Yes"; YES "Yes" private static final String NO = "No"; NO "No" public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int M = sc.nextInt();
        int C = sc.nextInt();
        int[] B = new int[M];
        for (int i=0; i<M; i++) {
            B[i] = sc.nextInt();
        }

        int[][] A = new int[N][M];
        for (int i=0; i<N; i++) {
            for (int j=0; j<M; j++) {
                A[i][j] = sc.nextInt();
            }

        }

        System.out.println(solve(N, M, C, B, A));
    } main {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int M = sc.nextInt();
        int C = sc.nextInt();
        int[] B = new int[M];
        for (int i=0; i<M; i++) {
            B[i] = sc.nextInt();
        }

        int[][] A = new int[N][M];
        for (int i=0; i<N; i++) {
            for (int j=0; j<M; j++) {
                A[i][j] = sc.nextInt();
            }

        }

        System.out.println(solve(N, M, C, B, A));
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int M = sc.nextInt(); M sc.nextInt() sc.nextInt sc int C = sc.nextInt(); C sc.nextInt() sc.nextInt sc int[] B = new int[M]; B new int[M] M for (int i=0; i<M; i++) {
            B[i] = sc.nextInt();
        } int i=0; int i=0; i 0 i<M i M i++ i++ i {
            B[i] = sc.nextInt();
        } {
            B[i] = sc.nextInt();
        } B[i] = sc.nextInt() B[i] B i sc.nextInt() sc.nextInt sc int[][] A = new int[N][M]; A new int[N][M] N M for (int i=0; i<N; i++) {
            for (int j=0; j<M; j++) {
                A[i][j] = sc.nextInt();
            }

        } int i=0; int i=0; i 0 i<N i N i++ i++ i {
            for (int j=0; j<M; j++) {
                A[i][j] = sc.nextInt();
            }

        } {
            for (int j=0; j<M; j++) {
                A[i][j] = sc.nextInt();
            }

        } for (int j=0; j<M; j++) {
                A[i][j] = sc.nextInt();
            } int j=0; int j=0; j 0 j<M j M j++ j++ j {
                A[i][j] = sc.nextInt();
            } {
                A[i][j] = sc.nextInt();
            } A[i][j] = sc.nextInt() A[i][j] A[i] A i j sc.nextInt() sc.nextInt sc System.out.println(solve(N, M, C, B, A)) System.out.println System.out System System.out solve(N, M, C, B, A) solve N M C B A String[] args args private static int solve(int N, int M, int C, int[] B, int[][] A) {
        int count = 0;

        for (int i=0; i<N; i++) {
            int value = 0;
            for (int j=0; j<M; j++) {
                value += A[i][j] * B[j];
            }
            value += C;

            if (value > 0) count++;
        }

        return count;
    } solve {
        int count = 0;

        for (int i=0; i<N; i++) {
            int value = 0;
            for (int j=0; j<M; j++) {
                value += A[i][j] * B[j];
            }
            value += C;

            if (value > 0) count++;
        }

        return count;
    } int count = 0; count 0 for (int i=0; i<N; i++) {
            int value = 0;
            for (int j=0; j<M; j++) {
                value += A[i][j] * B[j];
            }
            value += C;

            if (value > 0) count++;
        } int i=0; int i=0; i 0 i<N i N i++ i++ i {
            int value = 0;
            for (int j=0; j<M; j++) {
                value += A[i][j] * B[j];
            }
            value += C;

            if (value > 0) count++;
        } {
            int value = 0;
            for (int j=0; j<M; j++) {
                value += A[i][j] * B[j];
            }
            value += C;

            if (value > 0) count++;
        } int value = 0; value 0 for (int j=0; j<M; j++) {
                value += A[i][j] * B[j];
            } int j=0; int j=0; j 0 j<M j M j++ j++ j {
                value += A[i][j] * B[j];
            } {
                value += A[i][j] * B[j];
            } value += A[i][j] * B[j] value A[i][j] * B[j] A[i][j] A[i] A i j B[j] B j value += C value C if (value > 0) count++; value > 0 value 0 count++ count return count; count int N N int M M int C C int[] B B int[][] A A public class Main {
    private static final int MOD = 1_000_000_007;
    private static final String YES = "Yes";
    private static final String NO = "No";

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int M = sc.nextInt();
        int C = sc.nextInt();
        int[] B = new int[M];
        for (int i=0; i<M; i++) {
            B[i] = sc.nextInt();
        }

        int[][] A = new int[N][M];
        for (int i=0; i<N; i++) {
            for (int j=0; j<M; j++) {
                A[i][j] = sc.nextInt();
            }

        }

        System.out.println(solve(N, M, C, B, A));
    }

    private static int solve(int N, int M, int C, int[] B, int[][] A) {
        int count = 0;

        for (int i=0; i<N; i++) {
            int value = 0;
            for (int j=0; j<M; j++) {
                value += A[i][j] * B[j];
            }
            value += C;

            if (value > 0) count++;
        }

        return count;
    }
} public class Main {
    private static final int MOD = 1_000_000_007;
    private static final String YES = "Yes";
    private static final String NO = "No";

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int M = sc.nextInt();
        int C = sc.nextInt();
        int[] B = new int[M];
        for (int i=0; i<M; i++) {
            B[i] = sc.nextInt();
        }

        int[][] A = new int[N][M];
        for (int i=0; i<N; i++) {
            for (int j=0; j<M; j++) {
                A[i][j] = sc.nextInt();
            }

        }

        System.out.println(solve(N, M, C, B, A));
    }

    private static int solve(int N, int M, int C, int[] B, int[][] A) {
        int count = 0;

        for (int i=0; i<N; i++) {
            int value = 0;
            for (int j=0; j<M; j++) {
                value += A[i][j] * B[j];
            }
            value += C;

            if (value > 0) count++;
        }

        return count;
    }
} Main
import java.util.Scanner;

public class Main {
    private static final int MOD = 1_000_000_007;
    private static final String YES = "Yes";
    private static final String NO = "No";

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int M = sc.nextInt();
        int C = sc.nextInt();
        int[] B = new int[M];
        for (int i=0; i<M; i++) {
            B[i] = sc.nextInt();
        }

        int[][] A = new int[N][M];
        for (int i=0; i<N; i++) {
            for (int j=0; j<M; j++) {
                A[i][j] = sc.nextInt();
            }

        }

        System.out.println(solve(N, M, C, B, A));
    }

    private static int solve(int N, int M, int C, int[] B, int[][] A) {
        int count = 0;

        for (int i=0; i<N; i++) {
            int value = 0;
            for (int j=0; j<M; j++) {
                value += A[i][j] * B[j];
            }
            value += C;

            if (value > 0) count++;
        }

        return count;
    }
}