import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;
public class Main {
public int solution(int n, int k) {
int answer = 0;
//큐에서 q.offer(x);가 넣는것 q.poll();가 빼는것(빼진 값도 리턴)
//q.peek();은 제일 앞에 있는 것을 확인만 하는것
//q.contains(x);는 포함 boolean
//k-1 만큼 poll 한다음에 offer 해준다.
//그리고 k는 poll만 해준다.
//그 과정이 한번의 루틴이다.
//1명 남을 때 까지 반복
//1 2 4 5 6 7 8 -> 1 2 4 5 7 8 -> 2 4 5 7 8 -> 2 4 7 8 -> 4 7 8 -> 4 7 -> 7
Queue<Integer> Q = new LinkedList<>();
for(int i = 1; i <= n; i++) Q.offer(i);
while(!Q.isEmpty()) {
//k=3이면 1,2번 빠져서 뒤에 넣어주고 아래는 3이 빠짐
for(int i = 1; i < k; i++) Q.offer(Q.poll());
//k를 외친사람은 그냥 poll();
Q.poll();
//한명이 남으면 그 왕자가 공주를 구하러간다!
if(Q.size() == 1) answer = Q.poll();
//이 구문이 실행되면 큐가 비어있게 되고 while문도 탈출! 깔끔하다.
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int m = kb.nextInt();
System.out.print(T.solution(n, m));
}
}