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

#define PI 3.141592

typedef struct{
  double x, y;
}XY;

void fractal(int,XY,XY);
void prt(XY);

int main(){
  int n;
  XY p1 = {0,0};
  XY p2 = {100,0};

  scanf("%d",&n);

  prt(p1);
  fractal(n, p1, p2);
  prt(p2);

  return 0;
}

void fractal(int n, XY p1, XY p2){
  XY s, t, u;

  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;

  fractal(n-1, p1,  s);
  prt(s);
  fractal(n-1,  s,  u);
  prt(u);
  fractal(n-1,  u,  t);
  prt(t);
  fractal(n-1,  t, p2);
}

void prt(XY p){
  printf("%f, %f\n",p.x ,p.y);
}

