#include<stdio.h>
#include<math.h>
const double pi=acos(-1);
int n;
double g[15],l[15],k[15];
double Sin(double k)
{
return (k>0?1:-1)*sqrt((k*k)/(1+(k*k)));
}
double Cos(double k)
{
return sqrt(1/(1+(k*k)));
}
double solve(double k0,double kn)
{
double c=(k0-kn)/(g[n]-g[0]+g[n-1]-g[1]),rt=0;
int i;
for(i=1;i<=n;i++)
{
k[i]=kn+c*(g[n]-g[i-1]+g[n-1]-g[i]);
rt+=l[i]*Sin(k[i]);
}
return rt;
}
double judge(double k0)
{
double ll=-pi/2,rr=0,mid;
while((rr-ll)>3e-16)
{
mid=(ll+rr)/2;
(solve(tan(k0),tan(mid))>0)?(rr=mid):(ll=mid);
}
double rt=0;
int i;
for(i=1;i<=n;i++)
{
rt+=l[i]*Cos(k[i]);
}
return rt;
}
int main()
{
double L;
scanf("%d%lf",&n,&L);
int i;
for(i=1;i<=n;i++)
{
scanf("%lf",&l[i]);
g[i]=g[i-1]+l[i];
}
double ll=0,rr=pi/2,mid;
while((rr-ll)>3e-16)
{
mid=(ll+rr)/2;
(judge(mid)<L)?(rr=mid):(ll=mid);
}
double x=0,y=0;
for(i=1;i<n;i++)
{
x+=l[i]*Cos(k[i]);
y+=l[i]*Sin(k[i]);
printf("%.10lf %.10lf\n",x,y);
}
return 0;
}