#include<iostream>
using namespace std;
const int N=100;
int a[N],A,B,n,com[N];
void check(){
int idx=0;
for(int i=1;i<=n;i++){
if(a[i]>com[i]){
idx=1;
break;
}
if(a[i]<com[i]) break;
}
if(idx){
for(int i=1;i<=n;i++) com[i]=a[i];
}
}
void dfs(int i,int l,int r){
check();
if(i>n||(l+r==A+B)){
return ;
}
if(a[i]==9){
dfs(i+1,l,r);
return;
}
//向前走到9
if(l<A){
int t1=a[i];
//如果能走到9,那就走
if(A-l>=9-a[i]){
a[i]=9;
dfs(i+1,l+9-a[i],r);
}//如果不能,那就尽量往前走
else{
a[i]+=(A-l);
dfs(i+1,A,r);
}
a[i]=t1;
}
//向后走到9
if(r<B){
int t2=a[i];
//能走到,就对它进行处理
if(B-r>=a[i]+1){
a[i]=9;
dfs(i+1,l,r+a[i]+1);
a[i]=t2;
}else{
//如果不能走,就不处理
dfs(i+1,l,r);
}
}
}
int main(){
string str;
cin>>str>>A>>B;
n=str.length();
for(int i=1;i<=n;i++){
a[i]=str[i-1]-'0';
com[i]=a[i];
}
dfs(1,0,0);
for(int i=1;i<=n;i++) cout<<com[i];
return 0;
}