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

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

void kock(int n, Data d1,Data d2)
{
  Data s,t,u;
  if(n==0) return ;

  s.x=(2*d1.x+1*d2.x)/3.0;
  s.y=(2*d1.y+1*d2.y)/3.0;
  t.x=(2*d1.x+1*d2.x)/3.0;
  t.y=(2*d1.y+1*d2.y)/3.0;
  u.x=(t.x-s.x)/2.0-(t.y-s.y)*(sqrt(3)/2)+s.x;
  u.y=(t.x-s.x)*(sqrt(3)/2)+(t.y-s.y)/2.0+s.y;

  kock(n-1,d1,s);
  printf("%f %f\n",s.x,s.y);
  kock(n-1,s,u);
  printf("%f %f\n",u.x,t.y);
  kock(n-1,t,d2);

  return;
}

int main()
{
  int i,n;
  Data d1={0.0,0.0};
  Data d2={100.0,0.0};

  scanf("%d",&n);

  printf("%f %f\n",d1.x,d1.y);
  kock(n,d1,d2);
  printf("%f %f\n",d2.x,d2.y);
  
  return 0;
}