import java.awt.*;
import java.applet.Applet;
public class S extends Applet {

int i,h,x0,y0,size,px,py;
double h1;

  public S() {
     size = 512;
     h = size /4;
    x0=2*h;y0=4*h;h=h/32;
    i=5; h1 = ((double) h) / Math.sqrt(2); 
  }
  public void paint(Graphics g) {
     px=x0;py=y0;
     g.setColor(Color.red);
     A(i,g); line(7,h,g); 
     B(i,g); line(5,h,g); 
     C(i,g);line(3,h,g);
     D(i,g); line(1,h,g);

  }
  public void init() {
    setBackground(Color.white);
  }
  public void line(int x, int h, Graphics g) {

    //    System.out.println("Values are "+px+","+py);
    switch(x) {

    case 0: g.drawLine(px,py,px+h,py);px+=h;break;
    case 1: g.drawLine(px,py,  px + h, py +h);
        px =  px + h ; py =  py + h ;break;
    case 2: g.drawLine(px,py,px,py+h);py+=h;break;
    case 3:g.drawLine(px,py,  px - h,  py +h);
          px = px- h ; py =  py+  h ;break;
    case 4: g.drawLine(px,py,px-h,py);px-=h;break;
    case 5:g.drawLine(px,py, px - h, py - h);
          px =  px - h ; py =  py - h ;break;
   case 6: g.drawLine(px,py,px,py-h);py-=h;break;
   case 7: g.drawLine(px,py, px + h, py - h);
          px =  px + h ; py =  py - h ;break;
    }
  }
    void A(int i, Graphics g) {
       if (i>0)
         { g.setColor(Color.green);A(i-1,g);line(7,h,g);B(i-1,g);line(0,2*h,g);D(i-1,g);line(1,h, g);A(i-1,g);
	 }
    }
    void B(int i, Graphics g) {
       if (i>0)
         { g.setColor(Color.blue);B(i-1,g);line(5,h,g);C(i-1,g);line(6,2*h,g);A(i-1,g);line(7,h,g);B(i-1,g);
	 }
    }
    void C(int i,Graphics g) {
       if (i>0)
         { g.setColor(Color.pink);C(i-1,g);line(3,h,g);D(i-1,g);line(4,2*h,g);B(i-1,g);line(5,h,g);C(i-1,g);
	 }
    }
    void D(int i, Graphics g) {
       if (i>0)
         { g.setColor(Color.cyan);D(i-1,g);line(1,h,g);A(i-1,g);line(2,2*h,g);C(i-1,g);line(3,h,g);D(i-1,g);
	 }
    }
}
