#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
const double Pi=acos(-1);
struct Complex{
	double x,y;
	Complex(){x=y=0;}
	Complex(double _x,double _y){x=_x,y=_y;}
	Complex operator + (Complex b){
		return Complex(x+b.x,y+b.y);
	}
	Complex operator - (Complex b){
		return Complex(x-b.x,y-b.y);
	}
	Complex operator * (double b){
		return Complex(x*b,y*b);
	}
	Complex operator * (Complex b){
		return Complex(x*b.x-y*b.y,x*b.y+y*b.x);
	}
}ans;
int n,m;double a[3005];
Complex expi(double x){
	return Complex(cos(x),sin(x));
}
double mod(double x){
	if(x>=2*Pi)x-=2*Pi;
	if(x<0)x+=2*Pi;
	return x;
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1,x;i<=n;++i)
		scanf("%d",&x),a[i]=2*Pi*x/m;
	for(int i=1;i<=n;++i){
		Complex B=expi(a[i]),sum;
		for(int j=i%n+1,k=0;j!=i;j=j%n+1){
			Complex M=expi(a[j]+mod(a[i]-a[j])/2);
			ans=ans+M*k+(B-M)*sum;
			++k;sum=sum+expi(mod(a[j]-a[i])/2);
		}
	}
	ans=ans*(2.0/n/(n-1)/(n-2));
	printf("%.15lf %.15lf\n",ans.x,ans.y);
	return 0;
}
