#include <bits/stdc++.h>
using namespace std;
struct item {
  char a, b, c, d;
};
int n, i, j, ile;
item tab[1005];
string s;
bool odw[1005];
bool check(item x, item y) {
  if (x.a == y.a && x.b == y.b && x.c == y.c && x.d == y.d) return true;
  if (x.a == y.b && x.b == y.d && x.c == y.a && x.d == y.c) return true;
  if (x.a == y.d && x.b == y.c && x.c == y.b && x.d == y.a) return true;
  if (x.a == y.c && x.b == y.a && x.c == y.d && x.d == y.b) return true;
  return false;
}
int main() {
  cin >> n;
  ile = 0;
  for (i = 0; i < n; ++i) {
    cin >> tab[i].a >> tab[i].b >> tab[i].c >> tab[i].d;
    cin >> s;
    odw[i] = false;
  }
  for (i = 0; i < n; ++i)
    if (!odw[i]) {
      ++ile;
      odw[i] = true;
      for (j = 0; j < n; ++j)
        if (!odw[j] && check(tab[i], tab[j])) odw[j] = true;
    }
  cout << ile << endl;
  return 0;
}
