http://codeforces.com/contest/426/problem/B

B. Sereja and Mirroring
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

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 2x × 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 2x) 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 itseveral (possibly zero) mirrorings. What minimum number of rows can such matrix contain?

Input

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 ai1, ai2, ..., aim (0 ≤ aij ≤ 1) — the i-th row of the matrix a.

Output

In the single line, print the answer to the problem — the minimum number of rows of matrix b.

Sample test(s)
input
4 3
0 0 1
1 1 0
1 1 0
0 0 1
output
2
input
3 3
0 0 0
0 0 0
0 0 0
output
3
input
8 1
0
1
1
0
0
1
1
0
output
2
Note

In the first test sample the answer is a 2 × 3 matrix b:

001
110

If we perform a mirroring operation with this matrix, we get the matrix a that is given in the input:

001
110
110
001 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
题意就是问你给定一个矩阵,求它的最小对称单元
 #include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include <algorithm>
#include<cstring>
#include<string>
using namespace std; int a[][], b[][], c[][];
int main()
{
int n, m, i, j, line, temp = ;
scanf("%d%d", &n, &m);
for (i = ; i < n; i++)
{
for (j = ; j < m; j++)
{
scanf("%d", &a[i][j]);
}
}
line = n;
while (!(line % ))
{
for (i = ; i < line / ; i++)
{
for (j = ; j < m; j++)
{
if (a[i][j] != a[line - - i][j])
{
temp++;
}
}
}
if (temp)
{
break;
}
else
{
line /= ;
}
}
printf("%d\n", line);
return ;
}

最新文章

  1. 2017年1月4日-linux学习
  2. gulp学习笔记2
  3. java&amp;postgresql时区总结
  4. MySQL数据库管理常用命令
  5. weblogic服务器的简单使用(一)
  6. 【不怕坑】之 Node.js加密 C#解密
  7. 再硬写一个最简单的HTTPSERVER
  8. [置顶] Android系统移植与调试之-------&gt;Amlogic方案编译步骤
  9. mac系统读写NTFS格式的移动硬盘
  10. [C#] 《Concurrency in C# Cookbook》读书笔记(一)- 并发编程概述
  11. WPF软件开发系统之三——自助购票取票、自助选座系统
  12. 利用ResultFilter实现asp.net mvc 页面静态化
  13. matplotlib.mlab库的重要函数
  14. 【BZOJ5469】[FJOI2018]领导集团问题(动态规划,线段树合并)
  15. Assigning to &#39;id&lt;UINavigationControllerDelegate,UIImagePickerControllerDelegate&gt; _Nullable&#39; from incompatible type &#39;InfchangeVC *const __strong&#39;
  16. Swift udp实现根据端口号监听广播数据(利用GCDAsyncUdpSocket实现)
  17. python写web服务器
  18. Hadoop概念学习系列之Hadoop新手学习指导之入门需知(二十)
  19. 几个比较实用的CSS
  20. 5.WebAPI的Filter

热门文章

  1. java笔试题整理
  2. Dynamics AX 2012 R2 外部程序运行在没有AD的环境(如PDA) 调用AX服务
  3. php const define 区别有那些呢?
  4. 一个很不错的bash脚本编写教程
  5. js笔记---封装自己的Ajax方法
  6. python项目练习3:万能的XML
  7. 2015-09-17 001 存储过程数据操作类 H_data_Helper
  8. A Knight&#39;s Journey 分类: POJ 搜索 2015-08-08 07:32 2人阅读 评论(0) 收藏
  9. 运行html,css,js好的软件
  10. noi 2971 抓住那头牛