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

#define PI  3.14159265

typedef struct {
  double x,y;
}XY;

void kock ( int , XY ,XY);

int main(){
  int n;
  XY p1 = {0.0,0.0} ,p2 = {100.0 , 0.0};
  scanf("%d", &n);

     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 , XY p1,XY  p2){
  if ( n == 0){ return;}
  XY s,t,u;
  s.x = (2 * p1.x + p2.x)/3.0;
  s.y = (2 * p1.y + p2.y)/3.0;
  t.x = ( p1.x + 2 *p2.x)/3.0;
  t.y = ( p1.y +2* p2.y)/3.0;
  u.x = (t.x -s.x) * cos ( PI /3.0 ) - (t.y -s.y) * sin ( PI /3.0) + s.x;
       u.y = (t.x -s.x) * sin ( PI /3.0 ) + (t.y -s.y) * cos ( PI /3.0) + s.y;  
  kock (n-1 ,p1 ,s );
  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 );

}

