/*解题思路:分解为十进制的一位,每位求余一次。即设str[0--n]为大数(0为个位,1为十位,2为百位,...)有ans[0] = str[0] % b;ans[1] = str[1] * 10 % b;...ans[n] = str[n]*10^n % b;这里要解决对10的n次方求余的问题,其实很简单,设temp[k]=10^k%b,必有temp[k] = temp[k] * 10 %b;那么,得出最后的方程为ans[k] = str[k] * temp[k] % b;ans = ans[0]+...+ans[n];其实就简单的求余操作。。。*/#include 
#include
#include
using namespace std;int main(){char str[1050];int n,i,j;int b;while(scanf("%s",str) != EOF){scanf("%d",&b);int ans = 0,temp = 1;n = strlen(str);for(i = n-1; i >= 0; i--){ans += (((str[i] - '0') * temp) % b);ans = ans % b;temp = ((temp *10) %b);}printf("%d\n",ans);}return 0;}