#include<iostream>
#include<string.h>
using namespace std;
int n;
int ans;
int vis[20],temp[20];
bool check(int a,int c){
int b=c*(n-a);
if(!b||!a||!c)return false;
memcpy(temp,vis,sizeof(vis));
while(b){
int t=b%10;
b/=10;
if(temp[t]||!t)return false;
temp[t]=1;
}
for(int i=1;i<=9;i++){
if(!temp[i])return false;
}
return true;
}
void dfs_c(int u,int a,int c){
if(u==n)return;
if(check(a,c))ans++;
for(int i=1;i<=9;i++){
if(!vis[i]){
vis[i]=1;
dfs_c(u+1,a,c*10+i);
vis[i]=0;
}
}
}
void dfs_a(int u,int a){
if(a>=n)return;//n == a + b / c
dfs_c(u,a,0);
for(int i=1;i<=9;i++){
if(!vis[i]){
vis[i]=1;
dfs_a(u+1,a*10+i);
vis[i]=0;
}
}
}
int main(){
cin>>n;
dfs_a(0,0);
cout<<ans;
return 0;
}