#include <bits/stdc++.h>
using namespace std;

int main(){
	int N, i, j;
	double L;
	scanf("%d%lf", &N, &L);
	vector<double> T(N);
	for(i = 0; i < N; i++){
		scanf("%lf", &T[i]);
	}
	double sumx = 0, sumy = 0;
	double ZPi_L = 2 * M_PI / L;
	for(i = 0; i < N; i++){
		for(j = i + 1; j < N; j++){
			double t1 = (T[i] + T[j]) / 2;
			double t2 = t1 + L / 2;
			if(t2 >= L){
				t2 -= L;
			}
			int k1 = j - i - 1;
			int k2 = N - k1 - 2;
			sumx += k1 * cos(t2 * ZPi_L) + k2 * cos(t1 * ZPi_L);
			sumy += k1 * sin(t2 * ZPi_L) + k2 * sin(t1 * ZPi_L);
		}
	}
	double n = ((double)N * (N - 1) * (N - 2)) / 6;
	printf("%.20lf %.20lf\n", sumx / n, sumy / n);
	return 0;
}