#include<stdio.h>
#include<conio.h>
char M[41]="0000014159265358979323846264338327950288";
char N[41],T[41],R[41];
char A[2][40],B[2][40];
int C[]={1,10,100};
int a,b,c,d,x,y;
int main(){
clrscr();
A[1][39]=3; //Parte entera
A[0][39]=B[1][39]=1;
for(x=0;x<40;x++)
if(M[x]-=48) N[x-1]=!a++;
Inicio:
for(y=41;--y;R[y]=10);
do{
R[b=d=y+1]--;
for(a=0,x=40;x--;)
a=M[x]*R[b]+a/10,
T[x]=a?a%10:0;
for(c=0,x=40;x--;)
a=(d?N[--d]:0)-T[x]-c,
T[x]=a+10*(c=a<0);
if(!c) for(y++,x=40;b--;)
N[b]=T[--x];
}while(y<40);
a=b=c=x=0;
do{
N[x]=M[x];
b+=M[x]=T[x];
if(a+=R[++x]||x>37)
c+=R[x]*C[40-x],
printf("%c",c?R[x]+48:32);
}while(x<40);
for(y=2;y--;)
for(d=c+1;d--;)
for(a=0,x=40;x--;)
if(d<c) a=A[y][x]+B[y][x]+a/10,
A[y][x]=a%10;
else a=A[y][x],
A[y][x]=B[y][x],
B[y][x]=a;
for(y=2;y--;printf("%c",10+37*y))
for(a=0,x=3;x<40;x++)
if(a+=d=A[y][x]) printf("%u",d);
else if(y) printf(" ");
getch();
if(b) goto Inicio;
return 0;
}