#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <stack>
#include <queue>
#define rep(i,l,r) for(int i=(l);i<=(r);++i)
#define per(i,r,l) for(int i=(r);i>=(l);--i)
using namespace std;
typedef double db;
const db pi=acos(-1.0);
int n,L,a[3010];db A,B;
int main(){
	scanf("%d%d",&n,&L);
	rep(i,1,n) scanf("%d",a+i);
	sort(a+1,a+n+1);
	rep(i,1,n) rep(j,i+1,n){
		db x=cos(db(a[i]+a[j])/L*pi),y=sin(db(a[i]+a[j])/L*pi);
		int k1=j-i-1,k2=n-2-k1;
		A+=(k2-k1)*x,B+=(k2-k1)*y;
	}
	A=A/n/(n-1)/(n-2)*6;
	B=B/n/(n-1)/(n-2)*6;
	printf("%.15lf %.15lf",A,B);
	return 0;
}