#include<stdio.h>
#include<math.h>
int z[1000001],x[1000001];
long long n,m,s,k,t,i,j,l,a;
char c;
/*void inmultire(int A[], int B[])
{
int i, j, t, C[NR_CIFRE];
memset(C, 0, sizeof(C));
for (i = 1; i <= A[0]; i++)
{
for (t=0, j=1; j <= B[0] || t; j++, t/=10)
C[i+j-1]=(t+=C[i+j-1]+A[i]*B[j])%10;
if (i + j - 2 > C[0]) C[0] = i + j - 2;
}
memcpy(A, C, sizeof(C));
} */
void adunare(int A[],int B[])
{
int 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;
}
void scadere(int A[],int B[])
{
int i,t=0;
for (i=1;i<=A[0];i++)
A[i]+=(t=(A[i]-=B[i]+t)<0)*10;
for (; A[0]>1 && !A[A[0]]; A[0]--);
}
long long rest(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;
}
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
scanf("%c",&c);
n=0;
while (c!='\n')
{
n++;
z[n]=c-48;
scanf("%c",&c);
}
scanf("%lld",&k);
for (i=1;i<=n;i++)
{
x[n-i+1]=z[i];
z[i]=0;
}
x[0]=n;
if (rest(x,k)==0) for (i=n;i>=1;i--) printf("%d",x[i]); else
{
adunare(z,x);
l=rest(x,k);
l=k-l;
for (i=1;i<=n;i++)
x[i]=0;
m=n;
n=0;
while (l)
{
n++;
x[n]=l%10;
l=l/10;
}
adunare(z,x);
if (z[m+1]!=0) m++;
for (i=m;i>=1;i--)
printf("%d",z[i]);
}
printf("\n");
return 0;
}