#include <bits/stdc++.h>

const int MAX_N = int(3e3) + 10;

int n, l;
double a[MAX_N], ans_x, ans_y;

void get(double angle, int cnt) {
	ans_x += cnt * cos(angle);
	ans_y += cnt * sin(angle);
}

int main() {
	scanf("%d%d", &n, &l);
	for (int i = 1; i <= n; ++i) {
		scanf("%lf", a + i);
		a[i] = a[i] / l * 2 * M_PI;
	}
	std::sort(a + 1, a + n + 1);

	for (int i = 1; i <= n; ++i) {
		for (int j = i + 1; j <= n; ++j) {
			double angle1 = (a[i] + a[j]) / 2, angle2 = angle1 + M_PI;
			get(angle1, n - (j - i + 1));
			get(angle2, j - i - 1);
		}
	}
	double all = 1.0 * n * (n - 1) * (n - 2) / 6;
	printf("%.10lf %.10lf\n", ans_x / all, ans_y / all);
}