int joseph(int N, int k) { if(N==1) { return 1; } if(N%2 == 0) { if(k == 1) { return 2*joseph(N/2, 1); } else { return 2*joseph(N/2, 2) - 1; } } else { if(k == 1) { return 2*joseph(N/2, 2); } else { return 2*joseph(N/2+1, 1) - 1; } }}