#include <iostream>
#include <cstdint>
using namespace std;
/*
To remember; the return value while dereferencing an array using its index varies based on usecase...
if we are writing to an idex then buffer[i] return address if we are reading buffer[i] returns a value
*/
class ByteBuffer{
private:
uint8_t buffer[8];
public:
uint8_t& operator[](int idx){ // overload func for assignment op
return buffer[idx];
}
uint8_t operator[](int idx)const{ // overload func for read op
return buffer[idx];
}
};
int main() {
ByteBuffer buffer;
for (int i = 0; i < 8; i++) {
int x;
cin >> x;
buffer[i] = x;
}
int idx, v;
cin >> idx >> v;
buffer[idx] = v;
for (int i = 0; i < 8; i++) {
cout << (int)buffer[i] << (i == 7 ? "" : " ");
}
return 0;
}