#include <iostream>
#include <cmath> // dla fmod
using namespace std;
int main() {
int N, K; // N i K zawsze całkowite
double M; // M może mieć ułamki
cin >> N >> M >> K;
if (M == 0 || N == 0) {
cout << M << endl;
return 0;
}
int x = 0;
// wybór początkowego x
if (N % 2 <= M) {
x = N;
} else {
x = (N <= M ? N : (int)M); // x zawsze całkowite
}
for (int i = 0; i < K; i++) {
N -= x; // N traci x (całkowite)
M -= x / 2.0; // M traci połowę x (może być ułamek)
M += x; // M dostaje x
if (N <= 0 || M <= 0) {
break;
}
// aktualizacja x po każdym kroku
if (N % 2 <= M) {
x = N;
} else {
x = (N <= M ? N : (int)M);
}
}
cout << M << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+IC8vIGRsYSBmbW9kCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGludCBOLCBLOyAgICAgICAvLyBOIGkgSyB6YXdzemUgY2HFgmtvd2l0ZQogICAgZG91YmxlIE07ICAgICAgIC8vIE0gbW/FvGUgbWllxIcgdcWCYW1raQogICAgY2luID4+IE4gPj4gTSA+PiBLOwoKICAgIGlmIChNID09IDAgfHwgTiA9PSAwKSB7CiAgICAgICAgY291dCA8PCBNIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgaW50IHggPSAwOwoKICAgIC8vIHd5YsOzciBwb2N6xIV0a293ZWdvIHgKICAgIGlmIChOICUgMiA8PSBNKSB7CiAgICAgICAgeCA9IE47CiAgICB9IGVsc2UgewogICAgICAgIHggPSAoTiA8PSBNID8gTiA6IChpbnQpTSk7IC8vIHggemF3c3plIGNhxYJrb3dpdGUKICAgIH0KCiAgICBmb3IgKGludCBpID0gMDsgaSA8IEs7IGkrKykgewogICAgICAgIE4gLT0geDsgICAgICAgICAgLy8gTiB0cmFjaSB4IChjYcWCa293aXRlKQogICAgICAgIE0gLT0geCAvIDIuMDsgICAgLy8gTSB0cmFjaSBwb8WCb3fEmSB4IChtb8W8ZSBiecSHIHXFgmFtZWspCiAgICAgICAgTSArPSB4OyAgICAgICAgICAvLyBNIGRvc3RhamUgeAoKICAgICAgICBpZiAoTiA8PSAwIHx8IE0gPD0gMCkgewogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIC8vIGFrdHVhbGl6YWNqYSB4IHBvIGthxbxkeW0ga3Jva3UKICAgICAgICBpZiAoTiAlIDIgPD0gTSkgewogICAgICAgICAgICB4ID0gTjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB4ID0gKE4gPD0gTSA/IE4gOiAoaW50KU0pOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IE0gPDwgZW5kbDsKICAgIHJldHVybiAwOwp9Cgo=