Let's assume that we are given a matrix *b* of size *x* × *y*, let's determine the operation of mirroring matrix *b*. The mirroring of matrix *b* is a 2*x* × *y* matrix *c* which has the following properties:
 -  the upper half of matrix *c* (rows with numbers from 1 to *x*) exactly matches *b*; -  the lower half of matrix *c* (rows with numbers from *x* + 1 to 2*x*) is symmetric to the upper one; the symmetry line is the line that separates two halves (the line that goes in the middle, between rows *x* and *x* + 1). 
Sereja has an *n* × *m* matrix *a*. He wants to find such matrix *b*, that it can be transformed into matrix *a*, if we'll perform on it several (possibly zero) mirrorings. What minimum number of rows can such matrix contain?
The first line contains two integers, *n* and *m* (1 ≤ *n*, *m* ≤ 100). Each of the next *n* lines contains *m* integers — the elements of matrix *a*. The *i*-th line contains integers *a*<sub class="lower-index">*i*1</sub>, *a*<sub class="lower-index">*i*2</sub>, ..., *a*<sub class="lower-index">*im*</sub> (0 ≤ *a*<sub class="lower-index">*ij*</sub> ≤ 1) — the *i*-th row of the matrix *a*.
import collections
import heapq
import sys
import math
import itertools
import bisect
import os


def values():
    return tuple(map(int, sys.stdin.readline().split()))


def inp():
    return int(sys.stdin.readline())


def inpstr():
    return sys.stdin.readline().strip()


def words():
    return sys.stdin.readline().split()


def chars():
    return list(sys.stdin.readline().strip())


def check_sym(mat, end):
    if end & 1:
        return False
    for i in range(end // 2):
        if mat[end // 2 - 1 - i] != mat[end // 2 + i]:
            return False
    return True


def solve():
    n, m = values()
    mat = []
    for i in range(n):
        row = values()
        r = 0
        for j in range(m):
            r |= row[j] << j
        mat.append(r)

    end = n

    while check_sym(mat, end):
        end //= 2

    print(end)


if __name__ == "__main__":
    # if os.path.exists('/home/ms/myp/problem-solving/input'):
    #     sys.stdin = open('/home/ms/myp/problem-solving/input', 'r')
    sys.setrecursionlimit(10000000)
    solve()
