https://123dok.net/document/zx5ojg4q-coding-for-discrete-memoryless-two-way-channels.html