#include<stdio.h>
#include<math.h>

typedef struct
{
  double x;
  double y;
}co;

void koch(int num,co p1,co p2)
{
  if(num==0) return;
  co n,m,o;
  double angle=M_PI*60.0/180.0;

  n.x=(2.0*p1.x+1.0*p2.x)/3.0;
  n.y=(2.0*p1.y+1.0*p2.y)/3.0;
  m.x=(1.0*p1.x+2.0*p2.x)/3.0;
  m.y=(1.0*p1.y+2.0*p2.y)/3.0;
  o.x=(m.x-n.x)*cos(angle)-(m.y-n.y)*sin(angle)+n.x;
  o.y=(m.x-n.x)*sin(angle)+(m.y-n.y)*cos(angle)+n.y;

  koch(num-1,p1,n);
  printf("%.8f %.8f\n",n.x,n.y);
  koch(num-1,n,o);
  printf("%.8f %.8f\n",o.x,o.y);
  koch(num-1,o,m);
  printf("%.8f %.8f\n",m.x,m.y);
  koch(num-1,m,p2);
}

int main()
{
  co p1,p2;
  int n;
  scanf("%d",&n);
  p1.x=0;
  p1.y=0;
  p2.x=100;
  p2.y=0;

  printf("%.8f %.8f\n",p1.x,p1.y);
  koch(n,p1,p2);
  printf("%.8f %.8f\n",p2.x,p2.y);
  return 0;
}