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*.
n,m = list(input().split())
#print(n,m,type(n))
flag =1
en=1
n = int(n)
m = int(m)
lst = []
for i in range(n):
    t = list(input().split())
    lst.append(t)
if(len(lst)%2==1):
    flag=0
for i in range(len(lst)):
    if(lst.count(lst[i])%2==1):
        flag=0
        break
#print(lst)
templst = 1
if(flag==1):#可以保证此时每一个元素肯定有至少两个
    while(en):
        count=0
        temp = int(len(lst)/2)
        for i in range(temp):
            if lst[i]==lst[-1]:
                count+=1
                lst.pop(-1)
        if templst==lst:
            en = 0
        templst = lst
    print(len(lst))
else:
    print(len(lst))
 	     	   				  			 	 	