#include<stdio.h>
#include<math.h>
#define Pi 3.141592

typedef struct {

  double x;
  double y;

}St;

void kock (int,St,St);

main()
{
  int n;
  St p1,p2;

  p1.x = 0;
  p1.y = 0;
  p2.x = 100;
  p2.y = 0;

  scanf("%d",&n);

 
  

  /*再起の中にprint文は含める*/
  printf("%f %f\n",p1.x,p1.y);
  kock(n,p1,p2);
  printf("%f %f\n",p2.x,p2.y);

  return 0;
}



void kock(int n,St p1,St p2)
{
  St s,u,t; 
  
  if(n == 0){
    return;
   
  }
  s.x = (2*p1.x + 1*p2.x)/3;
  s.y = (2*p1.y + 1*p2.y)/3;

  t.x = (1*p1.x + 2*p2.x)/3;
  t.y = (1*p1.y + 2*p2.y)/3;

  u.x = (t.x - s.x)*cos(Pi/3) - (t.y - s.y)*sin(Pi/3) + s.x ;
  u.y = (t.x - s.x)*sin(Pi/3) + (t.y - s.y)*cos(Pi/3) + s.y ;

  kock(n-1,p1,s);/*n==0ならばここは実質実行されない*/
  printf("%f %f\n",s.x,s.y);

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

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

  kock(n-1,t,p2);


}