#include <cstdio>
#include <cstring>

long r, s, n;
long dol[100][1000];
long gor[100][1000];
long open[100];
long sol = 0;

int main(void) {

    scanf("%ld%ld%ld", &r, &s, &n);
    for (int k = 0; k < n; ++k) {
        for (int j = 0; j < s; ++j) scanf("%ld", &gor[k][j]);
        for (int j = 0; j < s; ++j) scanf("%ld", &dol[k][j]);
    }

    for (int k = 0; k < n; ++k)
        if (!open[k]) {
            open[k] = open[k - 1] + 1;
            for (int i = k + 1; i < n; ++i) if (!open[i]) {
                int raz = dol[k][0] - dol[i][0], yes = 1;
                for (int j = 0; j < s; ++j)
                    if (gor[k][j] + dol[k][j] != gor[i][j] + dol[i][j]) {
                        yes = false;
                        break;
                    } else if (dol[k][j] - dol[i][j] != raz) {
                        yes = false;
                        break;
                    } if (yes) open[i] = open[k];
            }
        }

    for (int i = 0; i < n; ++i) if (open[i] > sol) sol = open[i];
    printf("%ld\n", sol);

    return 0;
}
