#include <iostream>
#include <vector>
using namespace std;
typedef struct {
int num;//编号
int Val;//报数
}St;//定义结构体
int check(int val,int exit)//检验是否被淘汰
{
if(val%exit==0)
{
return 1;
}
if((val - (val/10)*10)==exit)
{
return 1;
}
else
return 0;
}
int main()
{
int total,exit;
cin>>total>>exit;
int val = 1;
vector<St> vec(total);
vector<St>::iterator it = vec.begin();
for(int i =0;i<total;i++)
{
vec[i].num = i+1;
}
while(vec.size()!=1)
{
if(it==vec.end())
{
it = vec.begin();
(*it).Val = val;
if(check((*it).Val,exit))
{
it = vec.erase(it);//重点 每次使用erase方法之后it指向的是删除元素的下一个元素,所以为了统一需要(it-1)
it-=1;
}
}
else
{
(*it).Val = val;
if(check((*it).Val,exit))
{
it = vec.erase(it);//同上
it-=1;
}
}
it++;
val++;
}
cout<<vec[0].num<<endl;//只剩下一个元素,因此直接输出
}