Cod sursa(job #330009)
#include<cstdio>
#include<cstring>
#define maxn 100035
using namespace std;
char *x;
int a[maxn],b[maxn];
long long i,j,d,n;
long long mod(int A[], long long B)
{
long long i, t = 0;
for (i = A[0]; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
void add(int A[], int B[])
{
long long i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
A[i] = (t += A[i] + B[i]) % 10;
A[0] = i - 1;
}
int main()
{
x=new char[maxn];
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
fread(x,1,sizeof(x),stdin);
i=strlen(x)-1;
j=1;
while(x[i]<'0'||x[i]>'9') --i;
while(x[i]>='0'&&x[i]<='9')
d=d+j*(x[i]-'0'),j*=10,--i;
while(x[i]<'0'||x[i]>'9')
--i;
for(;i>=0;--i)
a[++a[0]]=x[i]-'0';
if(i=mod(a,d))
{
d=d-i;
while(d)
b[++b[0]]=d%10,d/=10;
add(a,b);
}
for(i=a[0];i;--i)
printf("%d",a[i]);
printf("\n");
fclose(stdin);
fclose(stdout);
return 0;
}