#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-9;
const double PI = acos(-1);
const int oo = 1e9, bpr = 1e9 + 7, N = -1;
char s[10];
set<vector<int> > Set;
int main() {
  ios_base ::sync_with_stdio(0);
  cin.tie(0);
  for (int i = 1; i <= 6; ++i) cin >> s[i];
  sort(s + 1, s + 6 + 1);
  int ans = 0;
  for (;;) {
    int x = 0;
    x += Set.insert({s[5], s[6], s[1], s[2], s[3], s[4]}).second;
    x += Set.insert({s[5], s[6], s[2], s[3], s[4], s[1]}).second;
    x += Set.insert({s[5], s[6], s[3], s[4], s[1], s[2]}).second;
    x += Set.insert({s[5], s[6], s[4], s[1], s[2], s[3]}).second;
    x += Set.insert({s[6], s[5], s[1], s[4], s[3], s[2]}).second;
    x += Set.insert({s[6], s[5], s[4], s[3], s[2], s[1]}).second;
    x += Set.insert({s[6], s[5], s[3], s[2], s[1], s[4]}).second;
    x += Set.insert({s[6], s[5], s[2], s[1], s[4], s[3]}).second;
    x += Set.insert({s[4], s[2], s[3], s[6], s[1], s[5]}).second;
    x += Set.insert({s[4], s[2], s[6], s[1], s[5], s[3]}).second;
    x += Set.insert({s[4], s[2], s[1], s[5], s[3], s[6]}).second;
    x += Set.insert({s[4], s[2], s[5], s[3], s[6], s[1]}).second;
    x += Set.insert({s[3], s[1], s[2], s[6], s[4], s[5]}).second;
    x += Set.insert({s[3], s[1], s[6], s[4], s[5], s[2]}).second;
    x += Set.insert({s[3], s[1], s[4], s[5], s[2], s[6]}).second;
    x += Set.insert({s[3], s[1], s[5], s[2], s[6], s[4]}).second;
    x += Set.insert({s[2], s[4], s[5], s[1], s[6], s[3]}).second;
    x += Set.insert({s[2], s[4], s[1], s[6], s[3], s[5]}).second;
    x += Set.insert({s[2], s[4], s[6], s[3], s[5], s[1]}).second;
    x += Set.insert({s[2], s[4], s[3], s[5], s[1], s[6]}).second;
    x += Set.insert({s[1], s[3], s[4], s[6], s[2], s[5]}).second;
    x += Set.insert({s[1], s[3], s[6], s[2], s[5], s[4]}).second;
    x += Set.insert({s[1], s[3], s[2], s[5], s[4], s[6]}).second;
    x += Set.insert({s[1], s[3], s[5], s[4], s[6], s[2]}).second;
    ans += (x != 0);
    if (!next_permutation(s + 1, s + 6 + 1)) break;
  }
  cout << ans;
  return 0;
}
