#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int m,ans;
bool x[10],y[10];
bool check(int a,int c)
{
long long b=m*(long long)c-a*c;
if (!a || !b || !c) return false;
memcpy(y,x, sizeof x);
while(b)
{
int p=b%10;
b/=10;
if(y[p]||!p)return false;
else y[p]=true;
}
for(int i=1;i<=9;i++)
{
if(!y[i])
{
return false;
}
}
return true;
}
void dfsc(int a,int u,int c)
{
if(u>9)return ;
if(check(a,c))ans++;
for(int i=1;i<=9;i++)
{
if(!x[i]){
x[i]=true;
dfsc(a,u+1,c*10+i);
x[i]=false;
}
}
}
void dfsa(int u,int a)
{
if(a>=m||u>9)return ;
dfsc(a,u,0);
for(int i=1;i<=9;i++)
{
if(!x[i])
{
x[i]=true;
dfsa(u+1,a*10+i);
x[i]=false;
}
}
}
int main()
{
cin>>m;
dfsa(0,0);
cout<<ans;
return 0;
}