#include using namespace std; typedef long long ll; typedef long double ld; typedef pair Pii; typedef pair Pil; typedef pair Pll; typedef pair Pli; typedef vector> Mat; #define fi first #define se second const ll MOD = 1e9 + 7; const ll MOD2 = 998244353; const ll MOD3 = 1812447359; const ll INF = 1ll << 62; const double PI = 2 * asin(1); void yes() { printf("yes\n"); } void no() { printf("no\n"); } void Yes() { printf("Yes\n"); } void No() { printf("No\n"); } void YES() { printf("YES\n"); } void NO() { printf("NO\n"); } string s; int ans = 0; map visited; bool judge(string s) { int num = 0, alp = 0; for (int i = 0; i < s.length(); i++) { if ('0' <= s[i] && s[i] <= '9') { num++; } else if ('a' <= s[i] && s[i] <= 'z') { alp++; } } if (num + alp < s.length() && num > 0) { return true; } else { return false; } } void solve(string now = "", int idx = 0) { if (idx == 8) { if (judge(now) && !visited[now]) { ans++; } visited[now] = true; return; } solve(now + s[idx], idx + 1); if (s[idx] == 'l') { solve(now + '1', idx + 1); } else if (s[idx] == 'o') { solve(now + '0', idx + 1); } else if (s[idx] == 'a') { solve(now + '@', idx + 1); } else if (s[idx] == 's') { solve(now + '$', idx + 1); } return; } int main() { cin >> s; solve(); cout << ans << endl; return 0; }