#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1), eps = 1e-10;
int n, L;
double alpha[3003], resx = 0, resy = 0;
double M(double x1, double x2) {
    double len = x2 - x1, mid;
    if (len < -eps) len += 2 * pi;
    if ((mid = x1 + len / 2) >= 2 * pi - eps) mid -= 2 * pi;
    return mid;
}
int main() {
    scanf("%d%d", &n, &L);
    for (int i = 0, x; i < n; ++i) scanf("%d", &x), alpha[i] = 2 * pi * x / L;
    for (int i = 0; i < n; ++i) {
        double sx = 0, sy = 0;
        for (int j = (i + 1) % n, k = 0; j != i; j = (j + 1) % n, ++k) {
            double m = M(alpha[j], alpha[i]), arg = alpha[j] - alpha[i];
            double tx = cos(alpha[i]) - cos(m), ty = sin(alpha[i]) - sin(m);
            resx += cos(m) * k, resy += sin(m) * k;
            resx += tx * sx - ty * sy, resy += tx * sy + ty * sx;
            if (arg < -eps) arg += 2 * pi;
            sx += cos(arg / 2), sy += sin(arg / 2);
        }
    }
    resx /= 0.5 * n * (n - 1) * (n - 2), resy /= 0.5 * n * (n - 1) * (n - 2);
    printf("%.15lf %.15lf\n", resx, resy);
    return 0;
}