int N,L,t;
double T[3000];
double D[3000][3000];
double S[3000];
int main()
{
	scanf("%d%d",&N,&L);
	for(int i=0;i<N;i++)
	{
		scanf("%d",&t);
		T[i]=6.283185307179586476925286766559005768394*t/L;
	}
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<N;j++)
		{
			D[i][j]=sqrt(1-cos(T[i]-T[j]));
		}
	}
	for(int i=0;i<N;i++)
	{
		for(int j=i+1;j<N;j++)
		{
			for(int k=j+1;k<N;k++)
			{
				const double base=D[i][j]+D[j][k]+D[k][i];
				S[i]+=D[j][k]/base;
				S[j]+=D[i][k]/base;
				S[k]+=D[i][j]/base;
			}
		}
	}
	double x=0,y=0;
	for(int i=0;i<N;i++)
	{
		x+=S[i]*cos(T[i]);
		y+=S[i]*sin(T[i]);
	}
	const double B=(long long)N*(N-1)*(N-2)/6;
	printf("%.16f %.16f\n",x/B,y/B);
}
