import numpy as np





def solve(string):

    n, m, c, *ba = list(map(int, string.split()))

    b = np.asarray(ba[:m])

    a = np.asarray(ba[m:])

    a.resize((n, m))

    return str(sum(np.dot(b, a.T) > -c))





if __name__ == '__main__':

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

    print((solve('{} {} {}\n'.format(n, m, o) + '\n'.join([eval(input()) for _ in range(n + 1)]))))

import numpy as np





def solve(string):

    n, m, c, *ba = list(map(int, string.split()))

    b = np.asarray(ba[:m])

    a = np.asarray(ba[m:])

    a.resize((n, m))

    return str(np.sum(np.dot(b, a.T) > -c))





if __name__ == '__main__':

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

    print((solve('{} {} {}\n'.format(n, m, o) + '\n'.join([eval(input()) for _ in range(n + 1)]))))

import numpy as np


def solve(string):
    n, m, c, *ba = list(map(int, string.split()))
    b = np.asarray(ba[:m])
    a = np.asarray(ba[m:])
    a.resize((n, m))
    return str(sum(np.dot(b, a.T) > -c))


if __name__ == "__main__":
    n, m, o = list(map(int, input().split()))
    print(
        (
            solve(
                "{} {} {}\n".format(n, m, o)
                + "\n".join([eval(input()) for _ in range(n + 1)])
            )
        )
    )

import numpy as np


def solve(string):
    n, m, c, *ba = list(map(int, string.split()))
    b = np.asarray(ba[:m])
    a = np.asarray(ba[m:])
    a.resize((n, m))
    return str(np.sum(np.dot(b, a.T) > -c))


if __name__ == "__main__":
    n, m, o = list(map(int, input().split()))
    print(
        (
            solve(
                "{} {} {}\n".format(n, m, o)
                + "\n".join([eval(input()) for _ in range(n + 1)])
            )
        )
    )

-    return str(sum(np.dot(b, a.T) > -c)) +    return str(np.sum(np.dot(b, a.T) > -c))