type arr = array [1..10] of array [1..10] of Char; var p: arr; q: array [1..5] of arr; i, j, k, n, res: Integer; function equal (const a, b: arr): Integer; var i, j: Integer; begin equal := 1; for i := 1 to n do for j := 1 to n do if a[i] <> b[i] then equal := 0; end; procedure flip (var a: arr; const b: arr); var i, j: Integer; begin for i := 1 to n do for j := 1 to n do a[i][j] := b[j][i]; end; procedure rotate90 (var a: arr; const b: arr); var i, j: Integer; begin for i := 1 to n do for j := 1 to n do a[i][j] := b[j][n - i + 1]; end; BEGIN readln (n); for i := 1 to n do begin for j := 1 to n do read (p[i][j]); readln; end; flip (q[1], p); res := 0; for k := 1 to 4 do begin res := res + equal (p, q[k]); rotate90 (q[k + 1], q[k]); end; writeln (res); END.