#include <bits/stdc++.h>
using namespace std;
template <class T>
void _R(T &x) {
  cin >> x;
}
void _R(int &x) { scanf("%d", &x); }
void _R(long long &x) { scanf("%lld", &x); }
void _R(double &x) { scanf("%lf", &x); }
void _R(char &x) { scanf(" %c", &x); }
void _R(char *x) { scanf("%s", x); }
template <class T>
void _W(const T &x) {
  cout << x;
}
void _W(const int &x) { printf("%d", x); }
void _W(const long long &x) { printf("%lld", x); }
void _W(const double &x) { printf("%.16f", x); }
void _W(const char &x) { putchar(x); }
void _W(const char *x) { printf("%s", x); }
map<string, bool> vis;
int a, b, c, d, e, f;
string cp[] = {
    "123456", "125643", "124365", "126534", "213465", "216543",
    "214356", "215634", "342156", "345612", "341265", "346521",
    "431256", "435621", "432165", "436512", "563421", "562143",
    "564312", "561234", "653412", "651243", "654321", "652134",
};
int main() {
  string in;
  cin >> in;
  sort(in.begin(), in.end());
  int cnt = 1;
  vis[in] = true;
  for (int i = 0; i < 24; i++) {
    string tmp;
    for (int j = 0; j < 6; j++) {
      tmp += in[cp[i][j] - '1'];
    }
    vis[tmp] = true;
  }
  while (next_permutation(in.begin(), in.end())) {
    if (!vis[in]) {
      cnt++;
      for (int i = 0; i < 24; i++) {
        string tmp;
        for (int j = 0; j < 6; j++) {
          tmp += in[cp[i][j] - '1'];
        }
        vis[tmp] = true;
      }
    }
  }
  cout << cnt << endl;
  return 0;
}
