# 约瑟夫
## 题目描述
$n$ 个人站成一圈,从某个人开始数数,每次数到 $m$ 的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人。现在有一圈人,$k$ 个好人站在一起,$k$ 个坏人站在一起。从第一个好人开始数数。你要确定一个最小的 $m$,使得在第一个好人被杀死前,$k$ 个坏人先被杀死。
## 输入格式
一行一个整数 $k$。
## 输出格式
一行一个整数 $m$。
## 样例 #1
### 样例输入 #1
```
3
```
### 样例输出 #1
```
5
```
## 样例 #2
### 样例输入 #2
```
4
```
### 样例输出 #2
```
30
```
## 提示
$0\lt k\lt 14$。
#include <bits/stdc++.h>
using namespace std;
int k;
int main() {
cin>>k;
int m=k+1;
while(true){
int p=0;
for(int i=0;i<k;i++) {
p=(p+m-1)%(2*k-i);
if(p<k) break;
if(i==k-1){
cout<<m;
return 0;
}
}
m++;
}
return 0;
}