import java.util.zip.*;
import java.io.*;

public class Gzip {

   // Can block when buffer in pipe is full!

   public static void main (String args[]) throws IOException {
      final PipedOutputStream po = new PipedOutputStream ();
      final PipedInputStream pi  = new PipedInputStream ();
      po.connect (pi);

      final OutputStream out = new GZIPOutputStream (po);
      final InputStream in = new GZIPInputStream (pi);      
      
      byte [] buffer = new byte[1024];
      int c;

      while ((c=System.in.read(buffer)) > 0) {
	 out.write(buffer,0,c);
      }
      out.close();

      while ((c=in.read(buffer)) > 0) {
	 System.out.write (buffer,0,c);
      }
      in.close();
   }
}