#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int n, k, ans[maxn];
int turn(int now, int op){
op *= k;
return (now + op + n) % n;
}bitset<maxn> vis;
multimap<int, int> m;
int dijkstra(int x){
fill(ans, ans + n, INT_MAX);
m.insert(pair<int, int>(ans[x] = 0, x));
while(m.size()){
int x = m.begin() -> second;
m.erase(m.begin());
if(vis[x]) continue;
vis[x] = 1;
for(int i = -1; i <= 1; i += 2){
int y = turn(x, i);
if(ans[y] > ans[x] + 1)
m.insert(pair<int, int>(ans[y] = ans[x] + 1, y));
}
}return *max_element(ans, ans + n);
}signed main(){
scanf("%d%d", &n, &k);
printf("%d", dijkstra(1));
return 0;
}