#include <bits/stdc++.h>
using namespace std;
const int INF = 1000000001;
const double EPS = 10e-9;
char T[1010][8];
bool pol[1010];
char temp[4];
bool same(int i, int j) {
  for (int st = 0; st <= (3); st++) {
    bool ret = true;
    for (int k = 0; k <= (3); k++)
      if (T[i][st + k] != T[j][k]) {
        ret = false;
        break;
      }
    if (ret) return true;
  }
  return false;
}
int main() {
  int n;
  int ans;
  scanf("%d", &n);
  ans = n;
  scanf("%s", temp);
  T[0][0] = temp[0];
  T[0][1] = temp[1];
  scanf("%s", temp);
  T[0][2] = temp[1];
  T[0][3] = temp[0];
  for (int k = 4; k <= (6); k++) T[0][k] = T[0][k - 4];
  for (int j = 1; j <= (n - 1); j++) {
    scanf("%s", temp);
    scanf("%s", temp);
    T[j][0] = temp[0];
    T[j][1] = temp[1];
    scanf("%s", temp);
    T[j][2] = temp[1];
    T[j][3] = temp[0];
    for (int k = 4; k <= (6); k++) T[j][k] = T[j][k - 4];
  }
  for (int j = 0; j < (n); j++) {
    for (int k = j + 1; k <= (n - 1); k++)
      if (!pol[k]) {
        if (same(j, k)) {
          ans--;
          pol[k] = true;
        }
      }
  }
  printf("%d", ans);
  return 0;
}
