#include                     <math.h>
                   int*q     ,C[]={            0,3,6,3,12,3,18,
      3,0         ,9,            6,9          ,12,          9,18
       ,9,0     ,0}             ,O[]=        {0 ,6             ,6            ,6
        ,12,6  ,18             ,6,  0,      12  ,0,             24          ,0,
         0},T[]={             0,12  ,0,    4,    8,              4,       16,4,
          0, 0},             *e,     X[    ]=    {0,              4,     2,6 ,8
           ,10,              0,       0}  ,Q      []              ={0  ,2,  2,
           4,               4,6       ,6 ,0,      8,               10,10  ,12
          ,8               ,14         ,12,       14,               0,8   ,2,
         10                ,4     ,   12,6,     14 ,0               ,0    },
        A[                ]=    {0,8 ,2,8,4,  8,6,8,0               ,10  ,2
       ,10               ,4,  10,6,10,0,2,2, 4,4 ,6,6                ,0 ,0
      ,0                 }, K[]     =  {0  ,2,    0,4,               0,6,
     2,4                ,4,6,6,2,0,0       },      i,j                ,w
     ,h                 ,k ,u,v   ,_;      double   c,                t,
    p,                 r,f,g,  l,m,n       ,o    ,x[16                ],
   y[16                ],z[16 ];char        s[256  ][1                <<
   8]                  ;main( int  a0,    char**b) {w=                a0
  >1 ?                atoi(b[  1]): 79    ; h=  a0 >2?                 0+
  atoi                (b[2]):  23;if        (!(w<  +20                 ||
 w>256                ||h<20   ||h>         256)   ){k                 =(
 w> h?               h:w)/2;               srand( time                 (0
 ));u=               rand()%       24;        v=  rand                 ()
%24;c=               atan2(       0,              -1)/                 12
;for(i               =0;i<h       ;i++           )for                  (j
=0;j<w               ;s[i][j                     ++]=                  32
);q= ((    i=        rand())&     1)?(i&2)      ?C:T:         O        ;e
=(i& 1)    ?(        i&2)  ?Q:      K:  (i      &2)?         A:        X;
for( i=   0;q[       i]+q   [i+1    ]> 0;       i+=2         ){        x[
i]=( r=   sin(       p=q    [i +1    ]*c     ))*cos         (t=        (q
[i]   +v  )*c)*      1.5   ;z   [i]=      cos(p);y[        i]=r *     sin
(t)   ;r  =u *c      ;t    =+     cos(r)*y[i  ]-sin       (r)* z[     i]
;z[    i]  = sin     (r)   *z        [i]      +cos       (r )* y[     i]
 ;y    [i]=t  ;}     for   (i                 =0;       (u  =e[i]    )-
 (v=    e[i+   1]     );   i=                i+2)      {f  =x [u]    ;m
  =x      [v]   ;g    =y[  u]                ;n=      y[v  ];l=z[   u]
  ;o       =z    [v    ];for                (j=0    ;128  >j;j++)   s[
   (             int)  (( g+                j*(    n-g)/  128) *k  +h
                /2)][( int)(                (f   +j*( m- f)/+  128)*
                k+  w/2)]=(l               +j* (o-l   )/ 128  )< 0?+
                46 :  120;};               for(i=  0  ;i  <h  ;i++)
                {for (  j=0;              j        <  w;  putchar
                  (s [ i] [j             ++       ]));   putchar
                        (                          10   ); }}}