/*
#include <stdio.h>
void f(int a)
{
if(a==1)
{
return ;
}
else
{
if(a%2==1)
{
printf("%d\n",3*a+1);
f(3*a+1);
}
else
{
printf("%d\n",a/2);
f(a/2);
}
}
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",n);
f(n);
return 0;
}
*/
/*
#include <stdio.h>
void f(int a)
{
if(a==1)
{
return ;
}
else
{
if(a%2==1)
{
f(3*a+1);
printf("%d\n",3*a+1);
}
else
{
f(a/2);
printf("%d\n",a/2);
}
}
}
int main()
{
int n;
scanf("%d",&n);
f(n);
printf("%d\n",n);
return 0;
}
*/
/*
#include <stdio.h>
int f(int a)
{
if(a==1)
{
return 1;
}
else
{
return a+f(a-1);
}
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
return 0;
}
*/
/*
#include <stdio.h>
int f(int a)
{
if(a==1)
{
return 1;
}
else
{
return a*f(a-1);
}
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
return 0;
}
*/
/*
#include <stdio.h>
int memo[500]={}; // memo[i] : f(i)를 구한적 있으면 그 수, 없다면 0 저장하는 용도
long long int f(int a)
{
if(memo[a]!=0) return memo[a];
if(a==1||a==2) return 1;
return memo[a] = (f(a-1)+f(a-2)) % 10009;
}
int main()
{
int n;
scanf("%d",&n);
printf("%lld",f(n));
return 0;
}
*/
/*
#include <stdio.h>
int memo[100][100]={};
long long int f(int a, int b)
{
if(memo[a][b]!=0) return memo[a][b];
if(a==1||b==1) return 1;
return memo[a][b] = (f(a-1,b)+f(a,b-1)) % 100000000;
}
int main()
{
int r,c;
scanf("%d %d",&r,&c);
printf("%lld",f(r,c));
}
*/
/*
#include <stdio.h>
int memo[50][50]={};
long long int f(int a, int b)
{
if(memo[a][b]!=0) return memo[a][b];
if(a==b) return 1;
if(b==1||a-b==1) return a;
if(b>a) return 0;
return memo[a][b]=f(a-1,b-1)+f(a-1,b);
}
int main()
{
int n,r;
scanf("%d %d",&n,&r);
printf("%lld",f(n,r));
}
*/
#include <stdio.h>
long long int f(long long int a)
{
if(a/10==0) return;
return f(a)+f(a%10);
f(a/10);
}
int main()
{
long long int n;
scanf("%lld",&n);
printf("%lld",f(n));
}



