#include <iostream>
#include <vector>
using namespace std;
//функция ниже нам понадобится дважды.
int JeosifFunc(vector <int> a, unsigned int n, unsigned int m){
for (unsigned int i=a.size(); i>1; i--){ //задаем цикл, который выполняется n-1 раз
if (m>a.size()){
m=a.size()%m-1; //m не больше n => (люди в круге, используем операцию %
}
a.erase (a.begin()+m-1);//=> последовательно стираем
for (unsigned int i=0; i<m-1; i++){
a.push_back (a[i]); // для удобства первые элементы до m продублируем вконец вектора
}
a.erase (a.begin(), a.begin()+m-1);//стираем всё до m
for (auto el:a)
cout <<el<<" ";
cout <<endl;
}
return a[0]; //ответ будет храниться в a[0].
}
int main() {
bool existing = false;
vector <int> a;
unsigned int n, m;
cin >> n >> m; //
for (unsigned int i=1; i<=n; i++){ // заполняем вектор номерами от 1 до n
a.push_back (i);
}
cout << JeosifFunc(a, n, m) << " ["; // первая часть задания на этом закончена.
//подставим всевозможные m в виде k и зафиксируем k при JeosifFunc(a, n, k) = 1
/*for (unsigned int k = 2; (k <= n)&&(existing == false); k++){// m>1 => k = 2
if( JeosifFunc(a, n, k) == 1){ // если обнаруживается такое k, что выживает первый номер,
existing = true;//выключаем цикл
cout << k<< "]";// выводим k
}
}
if (existing == false){ // если такого k не нашлось.
cout << "не существует]";
}*/
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy/RhNGD0L3QutGG0LjRjyDQvdC40LbQtSDQvdCw0Lwg0L/QvtC90LDQtNC+0LHQuNGC0YHRjyDQtNCy0LDQttC00YsuCmludCBKZW9zaWZGdW5jKHZlY3RvciA8aW50PiBhLCB1bnNpZ25lZCBpbnQgbiwgdW5zaWduZWQgaW50IG0pewoJZm9yICh1bnNpZ25lZCBpbnQgaT1hLnNpemUoKTsgaT4xOyBpLS0peyAvL9C30LDQtNCw0LXQvCDRhtC40LrQuywg0LrQvtGC0L7RgNGL0Lkg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyBuLTEg0YDQsNC3CgkJaWYgKG0+YS5zaXplKCkpeyAgICAgICAgCgkJCQltPWEuc2l6ZSgpJW0tMTsgLy9tINC90LUg0LHQvtC70YzRiNC1IG4gPT4gKNC70Y7QtNC4INCyINC60YDRg9Cz0LUsINC40YHQv9C+0LvRjNC30YPQtdC8INC+0L/QtdGA0LDRhtC40Y4gJQoJCX0gICAgICAgICAgICAgICAgICAgICAgIAoJCWEuZXJhc2UgKGEuYmVnaW4oKSttLTEpOy8vPT4g0L/QvtGB0LvQtdC00L7QstCw0YLQtdC70YzQvdC+INGB0YLQuNGA0LDQtdC8IAoJCWZvciAodW5zaWduZWQgaW50IGk9MDsgaTxtLTE7IGkrKyl7CgkJCWEucHVzaF9iYWNrIChhW2ldKTsgLy8g0LTQu9GPINGD0LTQvtCx0YHRgtCy0LAg0L/QtdGA0LLRi9C1INGN0LvQtdC80LXQvdGC0Ysg0LTQviBtINC/0YDQvtC00YPQsdC70LjRgNGD0LXQvCDQstC60L7QvdC10YYg0LLQtdC60YLQvtGA0LAKCQl9CgkJYS5lcmFzZSAoYS5iZWdpbigpLCBhLmJlZ2luKCkrbS0xKTsvL9GB0YLQuNGA0LDQtdC8INCy0YHRkSDQtNC+IG0KCQlmb3IgKGF1dG8gZWw6YSkKCQkJY291dCA8PGVsPDwiICI7CgkJY291dCA8PGVuZGw7Cgl9CglyZXR1cm4gYVswXTsgLy/QvtGC0LLQtdGCINCx0YPQtNC10YIg0YXRgNCw0L3QuNGC0YzRgdGPINCyIGFbMF0uCn0KCmludCBtYWluKCkgewoJYm9vbCBleGlzdGluZyA9IGZhbHNlOwoJdmVjdG9yIDxpbnQ+IGE7Cgl1bnNpZ25lZCBpbnQgbiwgbTsKCWNpbiA+PiBuID4+IG07IC8vIAoJZm9yICh1bnNpZ25lZCBpbnQgaT0xOyBpPD1uOyBpKyspeyAvLyDQt9Cw0L/QvtC70L3Rj9C10Lwg0LLQtdC60YLQvtGAINC90L7QvNC10YDQsNC80Lgg0L7RgiAxINC00L4gbgoJCWEucHVzaF9iYWNrIChpKTsKCX0KCWNvdXQgPDwgSmVvc2lmRnVuYyhhLCBuLCBtKSA8PCAiIFsiOyAvLyDQv9C10YDQstCw0Y8g0YfQsNGB0YLRjCDQt9Cw0LTQsNC90LjRjyDQvdCwINGN0YLQvtC8INC30LDQutC+0L3Rh9C10L3QsC4KCS8v0L/QvtC00YHRgtCw0LLQuNC8INCy0YHQtdCy0L7Qt9C80L7QttC90YvQtSBtINCyINCy0LjQtNC1IGsg0Lgg0LfQsNGE0LjQutGB0LjRgNGD0LXQvCBrINC/0YDQuCBKZW9zaWZGdW5jKGEsIG4sIGspID0gMQoJLypmb3IgKHVuc2lnbmVkIGludCBrID0gMjsgKGsgPD0gbikmJihleGlzdGluZyA9PSBmYWxzZSk7IGsrKyl7Ly8gbT4xID0+IGsgPSAyCgkJaWYoIEplb3NpZkZ1bmMoYSwgbiwgaykgPT0gMSl7IC8vINC10YHQu9C4INC+0LHQvdCw0YDRg9C20LjQstCw0LXRgtGB0Y8g0YLQsNC60L7QtSBrLCDRh9GC0L4g0LLRi9C20LjQstCw0LXRgiDQv9C10YDQstGL0Lkg0L3QvtC80LXRgCwKCQkJZXhpc3RpbmcgPSB0cnVlOy8v0LLRi9C60LvRjtGH0LDQtdC8INGG0LjQutC7CgkJCWNvdXQgPDwgazw8ICJdIjsvLyDQstGL0LLQvtC00LjQvCBrCgkJfQoJfQoJaWYgKGV4aXN0aW5nID09IGZhbHNlKXsgLy8g0LXRgdC70Lgg0YLQsNC60L7Qs9C+IGsg0L3QtSDQvdCw0YjQu9C+0YHRjC4KCQljb3V0IDw8ICLQvdC1INGB0YPRidC10YHRgtCy0YPQtdGCXSI7Cgl9Ki8KCXJldHVybiAwOwp9