#include <iostream>

int josephus(int n, int k) {
    if (n == 1) return 1;
    return (josephus(n - 1, k) + k - 1) % n + 1;
}

int findK(int n) {
    for (int k = 2; k <= n; ++k) {
        if (josephus(n, k) == 1) {
            return k;
        }
    }
    return -1;
}

int main() {
    int n = 7;
    int k = 3;

    int survivor = josephus(n, k);
    std::cout << "Номер оставшегося в живых: " << survivor << std::endl;

    int specialK = findK(n);
    if (specialK != -1) {
        std::cout << "Для n = " << n << " при k = " << specialK << " в живых останется первый." << std::endl;
    } else {
        std::cout << "Не найдено k > 1, при котором в живых останется первый." << std::endl;
    }

    return 0;
}

