def read(self, size=None):
    if size is None:
        return self.buf.read() + self.fileobj.read()
contents = self.buf.read(size)
if len(contents) < size:
    contents += self.fileobj.read(size - len(contents))
return contents

def readline(self):
    line = self.buf.readline()
if not line.endswith('\n'):
    line += self.fileobj.readline()
return line
sys.stdin = Peeker(sys.stdin)
python 3: чтение байтов из стандартного канала с опережающим чтением