Problem:
 Score : 200 points    Problem Statement There are N pieces of source code. The characteristics of the i -th code is represented by M integers A_{i1}, A_{i2}, ..., A_{iM} .  Additionally, you are given integers B_1, B_2, ..., B_M and C .  The i -th code correctly solves this problem if and only if A_{i1} B_1 + A_{i2} B_2 + ... + A_{iM} B_M + C > 0 .  Among the N codes, find the number of codes that correctly solve this problem.      Constraints  All values in input are integers.  1 \leq N, M \leq 20  -100 \leq A_{ij} \leq 100  -100 \leq B_i \leq 100  -100 \leq C \leq 100         Input Input is given from Standard Input in the following format:  N  M  C  B_1  B_2  ...  B_M  A_{11}  A_{12}  ...  A_{1M}  A_{21}  A_{22}  ...  A_{2M}  \vdots  A_{N1}  A_{N2}  ...  A_{NM}       Output Print the number of codes among the given N codes that correctly solve this problem.        Sample Input 1 2 3 -10
1 2 3
3 2 1
1 2 2      Sample Output 1 1  Only the second code correctly solves this problem, as follows:   Since 3 \times 1 + 2 \times 2 + 1 \times 3 + (-10) = 0 \leq 0 , the first code does not solve this problem.  1 \times 1 + 2 \times 2 + 2 \times 3 + (-10) = 1 > 0 , the second code solves this problem.        Sample Input 2 5 2 -4
-2 5
100 41
100 40
-3 0
-6 -2
18 -13      Sample Output 2 2       Sample Input 3 3 3 0
100 -100 0
0 100 100
100 100 100
-100 100 100      Sample Output 3 0  All of them are Wrong Answer . Except yours.

Solution (Python):
N, M, C = [int(_) for _ in input().split()]
B = [int(_) for _ in input().split()]
A = [[int(_) for _ in input().split()] for _ in range(N)]
ans = 0
for i in range(N):
    score = 0
    for j in range(M):
        score += A[i][j] * B[j]
    if score + C > 0:
        ans += 1
print(ans)

Solution (Python):
N,M,C=map(int,input().split())
B=list(map(int,input().split()))
cnt=0
for i in range(N):
    A=list(map(int,input().split()))
    res=C
    for j in range(M):
        res+=A[j]*B[j]
    if res>0:cnt+=1
print(cnt)

Solution (Python):

import operator
n, m, c = map(int, input().split())
cnt = 0
b = list(map(int, input().split()))
for _ in range(n):
    a = list(map(int, input().split()))
    cnt += (sum(map(operator.mul, a, b)) + c > 0)
print(cnt)

Solution (Python):
N, M, C = map(int, input().split())
b = list(map(int, input().split()))
a = [list(map(int, input().split())) for _ in range(N)]

cnt = 0
for i in range(N):
    t = C
    for j in range(M):
        t += a[i][j] * b[j]
    if t > 0:
        cnt += 1
print(cnt)

Solution (Python):
N, M, C = map(int, input().split())
B = list(map(int, input().split()))

res = 0
for i in range(N):
    A = list(map(int, input().split()))
    if sum([i*j for i, j in zip(A, B)]) + C > 0:
        res += 1

print(res)

Solution (Python):
N,M,C=[int(x) for x in input().split()]
Bs=[int(x) for x in input().split()]
r=0
for i in range(N):
    As=[int(x) for x in input().split()]
    total=0
    for j,a in enumerate(As):
        total+=a*Bs[j]
    if total+C>0:
        r+=1

print(r)

Solution (Python):
N,M,C = map(int,input().split())
B = list(map(int,input().split()))

ans = 0
for i in range(N):
    A = list(map(int,input().split()))
    c = C
    for j in range(M):
        c += A[j]*B[j]
    if c>0:
        ans += 1
print(ans)

Solution (Python):
N,M,C=[int(i) for i in input().split(" ")]
B=[int(i) for i in input().split(" ")]

def ac(A):
    s=0
    for a,b in zip(A,B):
        s+=a*b
    return s+C>0

retval=0
for i in range(N):
    A=[int(i) for i in input().split(" ")]
    retval+=ac(A)

print(retval)

Solution (Python):
N, M, C = map(int, input().split())
B = [int(b) for b in input().split()]
Count = 0
for _ in range(N):
    A = [int(a) for a in input().split()]
    Total = C
    for i in range(M):
        Total += A[i] * B[i]
    if Total > 0: Count += 1
print(Count)

Solution (Python):

n, m, c = map(int,input().split())
B = list(map(int,input().split()))

A = [list(map(int,input().split())) for i in range(n)]
co = 0
for i in range(n) :
    ans = 0
    for j in range(m):
        ans += A[i][j] * B[j]
    if ans + c > 0 :
        co += 1
print(co)

Solution (Python):
n,m,c=map(int,input().split())
l=list(map(int,input().split()))
cnt=0
for i in range(n):
  l2=list(map(int,input().split()))
  s=0
  for i in range(m):
    s+=l[i]*l2[i]
  s+=c
  if s>0:
    cnt+=1
print(cnt)

Solution (Python):
n, m, c = list(map(int, input().split()))
bs = list(map(int, input().split()))
ans = 0
for i in range(n):
    score = c
    for a, b in zip(list(map(int, input().split())), bs):
        score += a*b
    if score > 0:
        ans += 1
print(ans)

Solution (Python):
N, M, C = map(int, input().split())
B = list(map(int, input().split()))
cnt = 0
c = 0
for i in range(N):
    s = 0
    A = list(map(int, input().split()))
    for j in range(M):
        s += A[j] * B[j]
    s += C
    if s > 0:
        c += 1
print(c)

Solution (Python):
from operator import mul

N, M, C = map(int, input().split())
Bs = list(map(int, input().split()))
Ass = [tuple(map(int, input().split())) for _ in range(N)]

ans = 0
for As in Ass:
    if sum(map(mul, As, Bs)) + C > 0:
        ans += 1
print(ans)

Solution (Python):
N, M, C = [int(_) for _ in input().split()]
B = [int(_) for _ in input().split()]
A = [[int(_) for _ in input().split()] for i in range(N)]

result = 0

for row in A:
    t = C + sum([x * y for x, y in zip(row, B)])
    if t > 0:
        result += 1

print(result)

Solution (Python):
N, M, C = map(int, input().split())
B = list(map(int, input().split()))
ans = 0
for _ in range(N):
  A = list(map(int, input().split()))
  ans += sum([a * b for a, b in zip(A, B)]) + C > 0
print(ans)

Solution (Python):
n, m, c = map(int, input().split())
b = list(map(int, input().split()))
a = [list(map(int, input().split())) for _ in range(n)]
ans = 0
for i in range(n):
    if sum([a[i][j] * b[j] for j in range(m)]) + c > 0:
        ans += 1
print(ans)

Solution (Python):
import numpy as np
n, m, c = map(int, input().split())
B = np.array(list(map(int, input().split())))
ans = 0
for _ in range(n):
    A = np.array(list(map(int, input().split())))
    if np.dot(A, B)+c > 0:
        ans += 1

print(ans)

Solution (Python):
n, m, c = map(int, input().split())
b = list(map(int, input().split()))
a = []
ans = 0
for i in range(n):
    a = list(map(int, input().split()))
    an = c
    for i in range(m):
        an += a[i] * b[i]
    if an > 0:
        ans += 1
print(ans)

Solution (Python):
n, m, c = map(int, input().split())
b = list(map(int, input().split()))
a = [list(map(int, input().split())) for _ in range(n)]

count = 0
for i in range(n):
    num = c
    for j in range(m):
        num += a[i][j] * b[j]
    if num > 0:
        count += 1

print(count)

Solution (Python):
ii = lambda: int(input())
mi = lambda: map(int, input().split())
li = lambda: list(mi())

n, m, c = mi()
b = li()
ans = 0
for i in range(n):
    a = li()
    p = sum(x * y for x, y in zip(a, b))
    ans += p + c > 0
print(ans)

Solution (Python):
n,m,c = map(int,input().split())
b = list(map(int,input().split()))

ans =0

for i in range(n):
    a = list(map(int,input().split()))
    t = 0
    for k in range(m):
        t += b[k]*a[k]
    if t+c>0:
        ans += 1

print(ans)

Solution (Python):
N, M, C = map(int, raw_input().split())
B = map(int, raw_input().split())
ans = 0

for i in xrange(N):
    A = map(int, raw_input().split())
    tmp = C
    for j in xrange(M):
        tmp += A[j] * B[j]
    if tmp > 0:
        ans += 1

print ans

Solution (Python):



"""
a, b, k = map(int, input().split())
a = list(map(int, input().split()))
for i in reversed(range(min(a, b)+ 1)):
"""

n, m, c = map(int, input().split())
b = list(map(int, input().split()))

ans = 0
for i in range(n):
    a = list(map(int, input().split()))
    sm = 0
    for j in range(m):
        sm += a[j]*b[j]
    if sm + c > 0:
        ans+=1

print(ans)

Solution (Python):
N,M,C = map(int,input().split())
B = list(map(int,input().split()))
A = [list(map(int,input().split())) for i in range(N)]

ans = 0
for row in A:
    t = C
    for a,b in zip(row,B):
        t += a*b
    if t > 0:
        ans += 1
print(ans)

Solution (Python):
n,m,c=map(int,input().split())
b=list(map(int,input().split()))
ans=0
for _ in range(n):
    a=list(map(int,input().split()))
    sums=c
    for mm in range(m):
        sums+=b[mm]*a[mm]
    
    if sums>0:
        ans+=1
print(ans)

Solution (Python):
N, M, C = list(map(int, input().split()))
B = list(map(int, input().split()))
A = [list(map(int, input().split())) for i in range(N)]

Ans = 0
for i in range(N):
  t = C
  for j in range(M):
    t += A[i][j] * B[j]
  if t > 0:
    Ans += 1

print(Ans)

Solution (Python):


from collections import deque
import itertools as it
import sys
import math

sys.setrecursionlimit(1000000)

INF = 10 ** 18

N, M, C = map(int, raw_input().split())
B = map(int, raw_input().split())

ans = 0
for _ in range(N):
    A = map(int, raw_input().split())
    S = C
    for i in range(M):
        S += A[i] * B[i]
    if S > 0:
        ans += 1

print ans

Solution (Python):
N,M,C=map(int,input().split())
B=[int(i) for i in input().split()]
ans=0
for i in range(N):
    A=[int(i) for i in input().split()]
    tmp=C
    for j in range(M):
        tmp+=A[j]*B[j]
    if tmp>0:
        ans+=1
print(ans)

Solution (Python):
""" AtCoder """

N, M, C = map(int, input().split())
B = list(map(int, input().split()))
A = [list(map(int, input().split())) for _ in range(N)]

ans = 0
for i in range(N):
    tmp = C
    for j in range(M):
        tmp += A[i][j]*B[j]
    if tmp > 0:
        ans += 1

print(ans)

Solution (Python):
import numpy as np

n, m, c = map(int, input().split())
bbb = np.fromiter(map(int, input().split()), dtype=np.int64)
ans = 0
for _ in range(n):
    aaa = np.fromiter(map(int, input().split()), dtype=np.int64)
    if sum(aaa * bbb) + c > 0:
        ans += 1
print(ans)

Solution (Python):
ri = lambda: int(input())
rl = lambda: list(map(int,input().split()))
rr = lambda N: [ri() for _ in range(N)]
YN = lambda b: print('YES') if b else print('NO')
yn = lambda b: print('Yes') if b else print('No')
OE = lambda x: print('Odd') if x%2 else print('Even')
INF = 10**18

N,M,C=rl()
B=rl()
ans = 0
for _ in range(N):
    A=rl()
    if sum(map(lambda x,y:x*y,A,B))+C > 0:
        ans += 1
    
print(ans)

Solution (Python):
n,m,c = map(int,input().split())
b = list(map(int,input().split()))
res = 0

for i in range(n):
    a = list(map(int,input().split()))
    tmp = c
    for i,j in zip(a,b):
        tmp += i * j
    if tmp > 0:
        res += 1

print(res)

Solution (Python):
N,M,C = map(int, raw_input().split())
B = map(int, raw_input().split())
ans = 0
for _ in range(N):
  A = map(int, raw_input().split())
  s = C
  for j in range(M):
    s += A[j]*B[j]
  if s>0:
    ans += 1
print ans

Solution (Python):
import sys

stdin = sys.stdin

ni = lambda: int(ns())
na = lambda: list(map(int, stdin.readline().split()))
ns = lambda: stdin.readline().rstrip()  

n, m, c = na()
b = na()
ans = 0
for i in range(n):
    a = na()
    s = c
    for j in range(m):
        s += a[j]*b[j]
    if s > 0:
        ans += 1
print(ans)

Solution (Python):

from collections import defaultdict
from heapq import heappush, heappop
import sys
import math
import bisect
import random
def LI(): return list(map(int, sys.stdin.readline().split()))
def I(): return int(sys.stdin.readline())
def LS():return list(map(list, sys.stdin.readline().split()))
def S(): return list(sys.stdin.readline())[:-1]
def IR(n):
    l = [None for i in range(n)]
    for i in range(n):l[i] = I()
    return l
def LIR(n):
    l = [None for i in range(n)]
    for i in range(n):l[i] = LI()
    return l
def SR(n):
    l = [None for i in range(n)]
    for i in range(n):l[i] = S()
    return l
def LSR(n):
    l = [None for i in range(n)]
    for i in range(n):l[i] = SR()
    return l
mod = 1000000007




n,m,c = LI()
b = LI()
a = LIR(n)
ans = 0
for i in range(n):
    d = c
    for k in range(m):
        d += b[k]*a[i][k]
    if d > 0:
        ans += 1
print(ans)