#include <bits/stdc++.h>
// #pragma GCC optimize("O3, unroll-loops")
// #pragma GCC target("avx2,bmi,bmi2")
#define fast \
ios::sync_with_stdio(false); \
cin.tie(nullptr); \
cout.tie(nullptr);
#define fi first
#define se second
#define pr pair
#define ll long long
#define ull unsigned long long
#define db double
#define ln '\n'
using namespace std;
const string NAME = "BAI1";
/*-------------------------------------------------------------*/
bool snt(ll n)
{
if (n == 2 || n == 3) return true;
if (n < 3 || n % 2 == 0 || n % 3 == 0) return false;
for (ll i = 5; i * i <= n; i += 6)
if (n % i == 0 || n % (i + 2) == 0)
return false;
return true;
}
int main()
{
fast;
freopen((NAME + ".inp").c_str(), "r", stdin);
freopen((NAME + ".out").c_str(), "w", stdout);
auto start = chrono::steady_clock::now();
string s;
cin >> s;
sort(s.begin(), s.end());
ll c = 0;
do{
ll x = stoll(s);
if(snt(x)) c++;
} while(next_permutation(s.begin(), s.end()));
cout << c;
auto end = chrono::steady_clock::now();
cerr << "h, Time = " << chrono::duration<double>(end - start).count() << " s\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Ci8vICAjcHJhZ21hIEdDQyBvcHRpbWl6ZSgiTzMsIHVucm9sbC1sb29wcyIpCi8vICAjcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIsYm1pLGJtaTIiKQojZGVmaW5lIGZhc3QgICAgICAgICAgICAgICAgICAgICBcCiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IFwKICAgIGNpbi50aWUobnVsbHB0cik7ICAgICAgICAgICAgXAogICAgY291dC50aWUobnVsbHB0cik7CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwciBwYWlyCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIGRiIGRvdWJsZQojZGVmaW5lIGxuICdcbicKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3Qgc3RyaW5nIE5BTUUgPSAiQkFJMSI7CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpib29sIHNudChsbCBuKQp7CiAgICBpZiAobiA9PSAyIHx8IG4gPT0gMykgcmV0dXJuIHRydWU7CiAgICBpZiAobiA8IDMgfHwgbiAlIDIgPT0gMCB8fCBuICUgMyA9PSAwKSByZXR1cm4gZmFsc2U7CiAgICBmb3IgKGxsIGkgPSA1OyBpICogaSA8PSBuOyBpICs9IDYpCiAgICAgICAgaWYgKG4gJSBpID09IDAgfHwgbiAlIChpICsgMikgPT0gMCkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgIHJldHVybiB0cnVlOwp9CgppbnQgbWFpbigpCnsKICAgIGZhc3Q7CgogICAgZnJlb3BlbigoTkFNRSArICIuaW5wIikuY19zdHIoKSwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKChOQU1FICsgIi5vdXQiKS5jX3N0cigpLCAidyIsIHN0ZG91dCk7CgogICAgYXV0byBzdGFydCA9IGNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKCiAgICBzdHJpbmcgczsKICAgIGNpbiA+PiBzOwoKICAgIHNvcnQocy5iZWdpbigpLCBzLmVuZCgpKTsKCiAgICBsbCBjID0gMDsKICAgIGRvewogICAgICAgIGxsIHggPSBzdG9sbChzKTsKICAgICAgICAKICAgICAgICBpZihzbnQoeCkpIGMrKzsKCiAgICB9IHdoaWxlKG5leHRfcGVybXV0YXRpb24ocy5iZWdpbigpLCBzLmVuZCgpKSk7CgogICAgY291dCA8PCBjOwoKICAgIGF1dG8gZW5kID0gY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwogICAgY2VyciA8PCAiaCwgVGltZSA9ICIgPDwgY2hyb25vOjpkdXJhdGlvbjxkb3VibGU+KGVuZCAtIHN0YXJ0KS5jb3VudCgpIDw8ICIgc1xuIjsKfQo=