#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template < class T, class U> inline T GCD_L( T a, U b) {
T r;
while ( b) {
r= a;
a= b;
b= r% a;
}
return a;
}
template < class S, class T> inline S chmin( S & a, T b) {
if ( a> b) {
a= b;
}
return a;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
string findLexSmallestString( string s, int a, int b) {
int KL2GvlyY;
int n = s.size ( ) ;
string res = s;
string tmp;
string t;
b = GCD_L( b, n) ;
int Q5VJL1cS = n/ b;
for ( KL2GvlyY= ( 0 ) ; KL2GvlyY< ( Q5VJL1cS) ; KL2GvlyY++ ) {
int RZTsC2BF;
tmp = t = s;
for ( RZTsC2BF= ( 0 ) ; RZTsC2BF< ( 10 ) ; RZTsC2BF++ ) {
int i;
for ( i= ( 1 ) ; i< ( n) ; i+ = ( 2 ) ) {
t[ i] = ( t[ i] - '0' + a) % 10 + '0' ;
}
chmin( tmp, t) ;
}
if ( b% 2 ) {
int KrdatlYV;
t = tmp;
for ( KrdatlYV= ( 0 ) ; KrdatlYV< ( 10 ) ; KrdatlYV++ ) {
int i;
for ( i= ( 0 ) ; i< ( n) ; i+ = ( 2 ) ) {
t[ i] = ( t[ i] - '0' + a) % 10 + '0' ;
}
chmin( tmp, t) ;
}
}
chmin( res, tmp) ;
s = s.substr ( b) + s.substr ( 0 ,b) ;
}
return res;
}
}
;
// cLay varsion 20201018-2
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// string findLexSmallestString(string s, int a, int b) {
// int n = s.size();
// string res = s, tmp, t;
//
// b = gcd(b, n);
// REP(n/b){
// tmp = t = s;
// rep(10){
// rep(i,1,n,2) t[i] = (t[i]-'0'+a) % 10 + '0';
// tmp <?= t;
// }
// if(b%2){
// t = tmp;
// rep(10){
// rep(i,0,n,2) t[i] = (t[i]-'0'+a) % 10 + '0';
// tmp <?= t;
// }
// }
// res <?= tmp;
// s = s.substr(b) + s.substr(0,b);
// }
//
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+IGlubGluZSBUIEdDRF9MKFQgYSwgVSBiKXsKICBUIHI7CiAgd2hpbGUoYil7CiAgICByPWE7CiAgICBhPWI7CiAgICBiPXIlYTsKICB9CiAgcmV0dXJuIGE7Cn0KdGVtcGxhdGU8Y2xhc3MgUywgY2xhc3MgVD4gaW5saW5lIFMgY2htaW4oUyAmYSwgVCBiKXsKICBpZihhPmIpewogICAgYT1iOwogIH0KICByZXR1cm4gYTsKfQojZGVmaW5lIG1haW4gZHVtbXlfbWFpbgppbnQgbWFpbigpewogIHJldHVybiAwOwp9CiN1bmRlZiBtYWluCmNsYXNzIFNvbHV0aW9uewogIHB1YmxpYzoKICBzdHJpbmcgZmluZExleFNtYWxsZXN0U3RyaW5nKHN0cmluZyBzLCBpbnQgYSwgaW50IGIpewogICAgaW50IEtMMkd2bHlZOwogICAgaW50IG4gPSBzLnNpemUoKTsKICAgIHN0cmluZyByZXMgPSBzOwogICAgc3RyaW5nIHRtcDsKICAgIHN0cmluZyB0OwogICAgYiA9R0NEX0woYiwgbik7CiAgICBpbnQgUTVWSkwxY1MgPSBuL2I7CiAgICBmb3IoS0wyR3ZseVk9KDApO0tMMkd2bHlZPChRNVZKTDFjUyk7S0wyR3ZseVkrKyl7CiAgICAgIGludCBSWlRzQzJCRjsKICAgICAgdG1wID0gdCA9IHM7CiAgICAgIGZvcihSWlRzQzJCRj0oMCk7UlpUc0MyQkY8KDEwKTtSWlRzQzJCRisrKXsKICAgICAgICBpbnQgaTsKICAgICAgICBmb3IoaT0oMSk7aTwobik7aSs9KDIpKXsKICAgICAgICAgIHRbaV0gPSAodFtpXS0nMCcrYSkgJSAxMCArICcwJzsKICAgICAgICB9CiAgICAgICAgY2htaW4odG1wLCB0KTsKICAgICAgfQogICAgICBpZihiJTIpewogICAgICAgIGludCBLcmRhdGxZVjsKICAgICAgICB0ID0gdG1wOwogICAgICAgIGZvcihLcmRhdGxZVj0oMCk7S3JkYXRsWVY8KDEwKTtLcmRhdGxZVisrKXsKICAgICAgICAgIGludCBpOwogICAgICAgICAgZm9yKGk9KDApO2k8KG4pO2krPSgyKSl7CiAgICAgICAgICAgIHRbaV0gPSAodFtpXS0nMCcrYSkgJSAxMCArICcwJzsKICAgICAgICAgIH0KICAgICAgICAgIGNobWluKHRtcCwgdCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGNobWluKHJlcywgdG1wKTsKICAgICAgcyA9IHMuc3Vic3RyKGIpICsgcy5zdWJzdHIoMCxiKTsKICAgIH0KICAgIHJldHVybiByZXM7CiAgfQp9CjsKLy8gY0xheSB2YXJzaW9uIDIwMjAxMDE4LTIKCi8vIC0tLSBvcmlnaW5hbCBjb2RlIC0tLQovLyAjZGVmaW5lIG1haW4gZHVtbXlfbWFpbgovLyB7fQovLyAjdW5kZWYgbWFpbgovLyAKLy8gY2xhc3MgU29sdXRpb24gewovLyBwdWJsaWM6Ci8vICAgc3RyaW5nIGZpbmRMZXhTbWFsbGVzdFN0cmluZyhzdHJpbmcgcywgaW50IGEsIGludCBiKSB7Ci8vICAgICBpbnQgbiA9IHMuc2l6ZSgpOwovLyAgICAgc3RyaW5nIHJlcyA9IHMsIHRtcCwgdDsKLy8gCi8vICAgICBiID0gZ2NkKGIsIG4pOwovLyAgICAgUkVQKG4vYil7Ci8vICAgICAgIHRtcCA9IHQgPSBzOwovLyAgICAgICByZXAoMTApewovLyAgICAgICAgIHJlcChpLDEsbiwyKSB0W2ldID0gKHRbaV0tJzAnK2EpICUgMTAgKyAnMCc7Ci8vICAgICAgICAgdG1wIDw/PSB0OwovLyAgICAgICB9Ci8vICAgICAgIGlmKGIlMil7Ci8vICAgICAgICAgdCA9IHRtcDsKLy8gICAgICAgICByZXAoMTApewovLyAgICAgICAgICAgcmVwKGksMCxuLDIpIHRbaV0gPSAodFtpXS0nMCcrYSkgJSAxMCArICcwJzsKLy8gICAgICAgICAgIHRtcCA8Pz0gdDsKLy8gICAgICAgICB9Ci8vICAgICAgIH0KLy8gICAgICAgcmVzIDw/PSB0bXA7Ci8vICAgICAgIHMgPSBzLnN1YnN0cihiKSArIHMuc3Vic3RyKDAsYik7Ci8vICAgICB9Ci8vIAovLyAgICAgcmV0dXJuIHJlczsKLy8gICB9Ci8vIH07Cg==