#include <iostream>
using namespace std;
int main() {
int n;
while (cin >> n) {
// 找到n的最高有效位,然后左移结果
int highestBit = 0;
int temp = n;
while (temp > 0) {
highestBit++;
temp >>= 1;
}
// 最后剩下的数字是 2*(n - (1<<(highestBit-1))) + 1
int result = 2 * (n - (1 << (highestBit - 1))) + 1;
cout << result << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgbjsKICAgIHdoaWxlIChjaW4gPj4gbikgewogICAgICAgIC8vIOaJvuWIsG7nmoTmnIDpq5jmnInmlYjkvY3vvIznhLblkI7lt6bnp7vnu5PmnpwKICAgICAgICBpbnQgaGlnaGVzdEJpdCA9IDA7CiAgICAgICAgaW50IHRlbXAgPSBuOwogICAgICAgIHdoaWxlICh0ZW1wID4gMCkgewogICAgICAgICAgICBoaWdoZXN0Qml0Kys7CiAgICAgICAgICAgIHRlbXAgPj49IDE7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIOacgOWQjuWJqeS4i+eahOaVsOWtl+aYryAyKihuIC0gKDE8PChoaWdoZXN0Qml0LTEpKSkgKyAxCiAgICAgICAgaW50IHJlc3VsdCA9IDIgKiAobiAtICgxIDw8IChoaWdoZXN0Qml0IC0gMSkpKSArIDE7CiAgICAgICAgY291dCA8PCByZXN1bHQgPDwgZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9