import java.util.*;
public class Main {
	public static void main(String[] args)
	{
		//変数
		int count=0;
		boolean sw=false;
		int answer=0;
		int sum=0;
		List<Integer> h=new ArrayList<Integer>();
		//int t[]=new int[(int)Math.pow(10,5)];
		int max=Integer.MIN_VALUE;
		int min=Integer.MAX_VALUE;
		//入力
		Scanner sc = new Scanner(System.in);
		int N=sc.nextInt();
		int M=sc.nextInt();
		int C=sc.nextInt();
		int A[][]=new int[N][M];
		List<Integer> B=new ArrayList<Integer>();
		for(int i=0;i<M;i++)
		{
			B.add(sc.nextInt());
		}
		for(int i=0;i<N;i++)
		{
			for(int j=0;j<M;j++)
			{
				A[i][j]=sc.nextInt();
			}
		}
		
		//処理
		while(sw==false)
		{
			for(int i=0;i<M;i++)
			{
				h.add(A[count][i]);
			}
			for(int i=0;i<M;i++)
			{
				int x=B.get(i);
				int y=h.get(i);
				sum+=x*y;
			}
			sum+=C;
			if(sum>0)
			{
				answer++;
			}
			h.clear();
			sum=0;
			count++;
			if(count==N)
			{
				sw=true;
			}
		}
		// 出力
		//System.out.println(Arrays.toString(X));
		//System.out.println(Arrays.deepToString(a));
		//System.out.println(Arrays.toString(A.toArray()));
		//System.out.println("-------------------");
		System.out.println(answer);
	}
} import java.util.*; util.* java public class Main {
	public static void main(String[] args)
	{
		//変数
		int count=0;
		boolean sw=false;
		int answer=0;
		int sum=0;
		List<Integer> h=new ArrayList<Integer>();
		//int t[]=new int[(int)Math.pow(10,5)];
		int max=Integer.MIN_VALUE;
		int min=Integer.MAX_VALUE;
		//入力
		Scanner sc = new Scanner(System.in);
		int N=sc.nextInt();
		int M=sc.nextInt();
		int C=sc.nextInt();
		int A[][]=new int[N][M];
		List<Integer> B=new ArrayList<Integer>();
		for(int i=0;i<M;i++)
		{
			B.add(sc.nextInt());
		}
		for(int i=0;i<N;i++)
		{
			for(int j=0;j<M;j++)
			{
				A[i][j]=sc.nextInt();
			}
		}
		
		//処理
		while(sw==false)
		{
			for(int i=0;i<M;i++)
			{
				h.add(A[count][i]);
			}
			for(int i=0;i<M;i++)
			{
				int x=B.get(i);
				int y=h.get(i);
				sum+=x*y;
			}
			sum+=C;
			if(sum>0)
			{
				answer++;
			}
			h.clear();
			sum=0;
			count++;
			if(count==N)
			{
				sw=true;
			}
		}
		// 出力
		//System.out.println(Arrays.toString(X));
		//System.out.println(Arrays.deepToString(a));
		//System.out.println(Arrays.toString(A.toArray()));
		//System.out.println("-------------------");
		System.out.println(answer);
	}
} Main public static void main(String[] args)
	{
		//変数
		int count=0;
		boolean sw=false;
		int answer=0;
		int sum=0;
		List<Integer> h=new ArrayList<Integer>();
		//int t[]=new int[(int)Math.pow(10,5)];
		int max=Integer.MIN_VALUE;
		int min=Integer.MAX_VALUE;
		//入力
		Scanner sc = new Scanner(System.in);
		int N=sc.nextInt();
		int M=sc.nextInt();
		int C=sc.nextInt();
		int A[][]=new int[N][M];
		List<Integer> B=new ArrayList<Integer>();
		for(int i=0;i<M;i++)
		{
			B.add(sc.nextInt());
		}
		for(int i=0;i<N;i++)
		{
			for(int j=0;j<M;j++)
			{
				A[i][j]=sc.nextInt();
			}
		}
		
		//処理
		while(sw==false)
		{
			for(int i=0;i<M;i++)
			{
				h.add(A[count][i]);
			}
			for(int i=0;i<M;i++)
			{
				int x=B.get(i);
				int y=h.get(i);
				sum+=x*y;
			}
			sum+=C;
			if(sum>0)
			{
				answer++;
			}
			h.clear();
			sum=0;
			count++;
			if(count==N)
			{
				sw=true;
			}
		}
		// 出力
		//System.out.println(Arrays.toString(X));
		//System.out.println(Arrays.deepToString(a));
		//System.out.println(Arrays.toString(A.toArray()));
		//System.out.println("-------------------");
		System.out.println(answer);
	} main {
		//変数
		int count=0;
		boolean sw=false;
		int answer=0;
		int sum=0;
		List<Integer> h=new ArrayList<Integer>();
		//int t[]=new int[(int)Math.pow(10,5)];
		int max=Integer.MIN_VALUE;
		int min=Integer.MAX_VALUE;
		//入力
		Scanner sc = new Scanner(System.in);
		int N=sc.nextInt();
		int M=sc.nextInt();
		int C=sc.nextInt();
		int A[][]=new int[N][M];
		List<Integer> B=new ArrayList<Integer>();
		for(int i=0;i<M;i++)
		{
			B.add(sc.nextInt());
		}
		for(int i=0;i<N;i++)
		{
			for(int j=0;j<M;j++)
			{
				A[i][j]=sc.nextInt();
			}
		}
		
		//処理
		while(sw==false)
		{
			for(int i=0;i<M;i++)
			{
				h.add(A[count][i]);
			}
			for(int i=0;i<M;i++)
			{
				int x=B.get(i);
				int y=h.get(i);
				sum+=x*y;
			}
			sum+=C;
			if(sum>0)
			{
				answer++;
			}
			h.clear();
			sum=0;
			count++;
			if(count==N)
			{
				sw=true;
			}
		}
		// 出力
		//System.out.println(Arrays.toString(X));
		//System.out.println(Arrays.deepToString(a));
		//System.out.println(Arrays.toString(A.toArray()));
		//System.out.println("-------------------");
		System.out.println(answer);
	} int count=0; count 0 boolean sw=false; sw false int answer=0; answer 0 int sum=0; sum 0 List<Integer> h=new ArrayList<Integer>(); h new ArrayList<Integer>() int max=Integer.MIN_VALUE; max Integer.MIN_VALUE Integer Integer.MIN_VALUE int min=Integer.MAX_VALUE; min Integer.MAX_VALUE Integer Integer.MAX_VALUE 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 A[][]=new int[N][M]; A new int[N][M] N M List<Integer> B=new ArrayList<Integer>(); B new ArrayList<Integer>() for(int i=0;i<M;i++)
		{
			B.add(sc.nextInt());
		} int i=0; int i=0; i 0 i<M i M i++ i++ i {
			B.add(sc.nextInt());
		} {
			B.add(sc.nextInt());
		} B.add(sc.nextInt()) B.add B sc.nextInt() sc.nextInt sc 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 while(sw==false)
		{
			for(int i=0;i<M;i++)
			{
				h.add(A[count][i]);
			}
			for(int i=0;i<M;i++)
			{
				int x=B.get(i);
				int y=h.get(i);
				sum+=x*y;
			}
			sum+=C;
			if(sum>0)
			{
				answer++;
			}
			h.clear();
			sum=0;
			count++;
			if(count==N)
			{
				sw=true;
			}
		} sw==false sw false {
			for(int i=0;i<M;i++)
			{
				h.add(A[count][i]);
			}
			for(int i=0;i<M;i++)
			{
				int x=B.get(i);
				int y=h.get(i);
				sum+=x*y;
			}
			sum+=C;
			if(sum>0)
			{
				answer++;
			}
			h.clear();
			sum=0;
			count++;
			if(count==N)
			{
				sw=true;
			}
		} for(int i=0;i<M;i++)
			{
				h.add(A[count][i]);
			} int i=0; int i=0; i 0 i<M i M i++ i++ i {
				h.add(A[count][i]);
			} {
				h.add(A[count][i]);
			} h.add(A[count][i]) h.add h A[count][i] A[count] A count i for(int i=0;i<M;i++)
			{
				int x=B.get(i);
				int y=h.get(i);
				sum+=x*y;
			} int i=0; int i=0; i 0 i<M i M i++ i++ i {
				int x=B.get(i);
				int y=h.get(i);
				sum+=x*y;
			} {
				int x=B.get(i);
				int y=h.get(i);
				sum+=x*y;
			} int x=B.get(i); x B.get(i) B.get B i int y=h.get(i); y h.get(i) h.get h i sum+=x*y sum x*y x y sum+=C sum C if(sum>0)
			{
				answer++;
			} sum>0 sum 0 {
				answer++;
			} answer++ answer h.clear() h.clear h sum=0 sum 0 count++ count if(count==N)
			{
				sw=true;
			} count==N count N {
				sw=true;
			} sw=true sw true System.out.println(answer) System.out.println System.out System System.out answer String[] args args public class Main {
	public static void main(String[] args)
	{
		//変数
		int count=0;
		boolean sw=false;
		int answer=0;
		int sum=0;
		List<Integer> h=new ArrayList<Integer>();
		//int t[]=new int[(int)Math.pow(10,5)];
		int max=Integer.MIN_VALUE;
		int min=Integer.MAX_VALUE;
		//入力
		Scanner sc = new Scanner(System.in);
		int N=sc.nextInt();
		int M=sc.nextInt();
		int C=sc.nextInt();
		int A[][]=new int[N][M];
		List<Integer> B=new ArrayList<Integer>();
		for(int i=0;i<M;i++)
		{
			B.add(sc.nextInt());
		}
		for(int i=0;i<N;i++)
		{
			for(int j=0;j<M;j++)
			{
				A[i][j]=sc.nextInt();
			}
		}
		
		//処理
		while(sw==false)
		{
			for(int i=0;i<M;i++)
			{
				h.add(A[count][i]);
			}
			for(int i=0;i<M;i++)
			{
				int x=B.get(i);
				int y=h.get(i);
				sum+=x*y;
			}
			sum+=C;
			if(sum>0)
			{
				answer++;
			}
			h.clear();
			sum=0;
			count++;
			if(count==N)
			{
				sw=true;
			}
		}
		// 出力
		//System.out.println(Arrays.toString(X));
		//System.out.println(Arrays.deepToString(a));
		//System.out.println(Arrays.toString(A.toArray()));
		//System.out.println("-------------------");
		System.out.println(answer);
	}
} public class Main {
	public static void main(String[] args)
	{
		//変数
		int count=0;
		boolean sw=false;
		int answer=0;
		int sum=0;
		List<Integer> h=new ArrayList<Integer>();
		//int t[]=new int[(int)Math.pow(10,5)];
		int max=Integer.MIN_VALUE;
		int min=Integer.MAX_VALUE;
		//入力
		Scanner sc = new Scanner(System.in);
		int N=sc.nextInt();
		int M=sc.nextInt();
		int C=sc.nextInt();
		int A[][]=new int[N][M];
		List<Integer> B=new ArrayList<Integer>();
		for(int i=0;i<M;i++)
		{
			B.add(sc.nextInt());
		}
		for(int i=0;i<N;i++)
		{
			for(int j=0;j<M;j++)
			{
				A[i][j]=sc.nextInt();
			}
		}
		
		//処理
		while(sw==false)
		{
			for(int i=0;i<M;i++)
			{
				h.add(A[count][i]);
			}
			for(int i=0;i<M;i++)
			{
				int x=B.get(i);
				int y=h.get(i);
				sum+=x*y;
			}
			sum+=C;
			if(sum>0)
			{
				answer++;
			}
			h.clear();
			sum=0;
			count++;
			if(count==N)
			{
				sw=true;
			}
		}
		// 出力
		//System.out.println(Arrays.toString(X));
		//System.out.println(Arrays.deepToString(a));
		//System.out.println(Arrays.toString(A.toArray()));
		//System.out.println("-------------------");
		System.out.println(answer);
	}
} Main
import java.util.*;
public class Main {
	public static void main(String[] args)
	{
		//変数
		int count=0;
		boolean sw=false;
		int answer=0;
		int sum=0;
		List<Integer> h=new ArrayList<Integer>();
		//int t[]=new int[(int)Math.pow(10,5)];
		int max=Integer.MIN_VALUE;
		int min=Integer.MAX_VALUE;
		//入力
		Scanner sc = new Scanner(System.in);
		int N=sc.nextInt();
		int M=sc.nextInt();
		int C=sc.nextInt();
		int A[][]=new int[N][M];
		List<Integer> B=new ArrayList<Integer>();
		for(int i=0;i<M;i++)
		{
			B.add(sc.nextInt());
		}
		for(int i=0;i<N;i++)
		{
			for(int j=0;j<M;j++)
			{
				A[i][j]=sc.nextInt();
			}
		}
		
		//処理
		while(sw==false)
		{
			for(int i=0;i<M;i++)
			{
				h.add(A[count][i]);
			}
			for(int i=0;i<M;i++)
			{
				int x=B.get(i);
				int y=h.get(i);
				sum+=x*y;
			}
			sum+=C;
			if(sum>0)
			{
				answer++;
			}
			h.clear();
			sum=0;
			count++;
			if(count==N)
			{
				sw=true;
			}
		}
		// 出力
		//System.out.println(Arrays.toString(X));
		//System.out.println(Arrays.deepToString(a));
		//System.out.println(Arrays.toString(A.toArray()));
		//System.out.println("-------------------");
		System.out.println(answer);
	}
}