#DP1061. 505

505

Description

A binary matrix is called good if every even length square sub-matrix has an odd number of ones.

Given a binary matrix aa consisting of nn rows and mm columns, determine the minimum number of cells you need to change to make it good, or report that there is no way to make it good at all.

All the terms above have their usual meanings — refer to the Notes section for their formal definitions.

Input

The first line of input contains two integers nn and mm (1nm1061 \leq n \leq m \leq 10^6 and nm106n\cdot m \leq 10^6) — the number of rows and columns in aa, respectively.

The following nn lines each contain mm characters, each of which is one of 0 and 1. If the jj-th character on the ii-th line is 1, then ai,j=1a_{i,j} = 1. Similarly, if the jj-th character on the ii-th line is 0, then ai,j=0a_{i,j} = 0.

Format

Input

The first line of input contains two integers nn and mm (1nm1061 \leq n \leq m \leq 10^6 and nm106n\cdot m \leq 10^6) — the number of rows and columns in aa, respectively.

The following nn lines each contain mm characters, each of which is one of 0 and 1. If the jj-th character on the ii-th line is 1, then ai,j=1a_{i,j} = 1. Similarly, if the jj-th character on the ii-th line is 0, then ai,j=0a_{i,j} = 0.

Output

Output the minimum number of cells you need to change to make aa good, or output 1-1 if it's not possible at all.

Samples

3 3
101
001
110
2
7 15
000100001010010
100111010110001
101101111100100
010000111111010
111010010100001
000011001111101
111111011010011
-1