#include <stdio.h>
struct numbers{int x; int y;};
struct numbers gcd(int a, int b){
struct numbers rt;
if(a*b==0){
rt.x=-1;
rt.y=a+b;
return rt;
}
rt.x=a/b+gcd(b,a%b).x;
rt.y=gcd(b,a%b).y;
return rt;
}
str(int a, int b){
//printf("%d, %d\n",a,b);
if(a==b)
return 0;//문자열의 끝이므로 0
else if(a>b){
str(a-b,b);
}
else{
str(a,b-a);
}
}
int calc(int t1, int t2) {
int n=t1;
int m=t2;
int ans1=0;
int ans2=0;
int strr=0;
for(int i=1;i<n/2;i++){
if(gcd(n-i,i).y==1){
if(gcd(n-i,i).x<=m){
ans1=i;
ans2=n-i;
}
}
}
str(ans1,ans2);
//printf("\n%d\n%d\n",ans1,ans2);
// your code goes here
}
int main(void){
/* calc(100,9);
calc(1000,14);
calc(10000,20);*/
//calc(100000,24);
calc(999999,29);
//calc(20200101,36);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CnN0cnVjdCBudW1iZXJze2ludCB4OyBpbnQgeTt9OwogCnN0cnVjdCBudW1iZXJzIGdjZChpbnQgYSwgaW50IGIpewoJc3RydWN0IG51bWJlcnMgcnQ7CiAKCWlmKGEqYj09MCl7CgkJcnQueD0tMTsKCQlydC55PWErYjsKCQlyZXR1cm4gcnQ7Cgl9CglydC54PWEvYitnY2QoYixhJWIpLng7CglydC55PWdjZChiLGElYikueTsKCXJldHVybiBydDsKfQogCnN0cihpbnQgYSwgaW50IGIpewoJLy9wcmludGYoIiVkLCAlZFxuIixhLGIpOwoJaWYoYT09YikKCSByZXR1cm4gMDsvL+usuOyekOyXtOydmCDrgZ3snbTrr4DroZwgMAogCgllbHNlIGlmKGE+Yil7CgkgcHJpbnRmKCJSIik7Ly9S7J20IOyZgOyVvCDtlZzri6QuCgkgc3RyKGEtYixiKTsKCX0KCWVsc2V7CgkgcHJpbnRmKCJVIik7Ly9V6rCAIOyZgOyVvCDtlZzri6QuCgkgc3RyKGEsYi1hKTsKCX0KIAp9CiAKaW50IGNhbGMoaW50IHQxLCBpbnQgdDIpIHsKCWludCBuPXQxOwoJaW50IG09dDI7CglpbnQgYW5zMT0wOwoJaW50IGFuczI9MDsKCWludCBzdHJyPTA7CiAKIAoJZm9yKGludCBpPTE7aTxuLzI7aSsrKXsKCQlpZihnY2Qobi1pLGkpLnk9PTEpewoJCQlpZihnY2Qobi1pLGkpLng8PW0pewoJCQkJYW5zMT1pOwoJCQkJYW5zMj1uLWk7CgkJCX0KCQl9Cgl9CiAKCXN0cihhbnMxLGFuczIpOwoJcHJpbnRmKCJcbiIpOwoJLy9wcmludGYoIlxuJWRcbiVkXG4iLGFuczEsYW5zMik7CiAKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKfQoKaW50IG1haW4odm9pZCl7Ci8qCWNhbGMoMTAwLDkpOwoJY2FsYygxMDAwLDE0KTsKCWNhbGMoMTAwMDAsMjApOyovCgkvL2NhbGMoMTAwMDAwLDI0KTsKCWNhbGMoOTk5OTk5LDI5KTsKCS8vY2FsYygyMDIwMDEwMSwzNik7CgkKCXJldHVybiAwOwp9Cgo=