#include <bits/stdc++.h>
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) {
    printf("i=%d\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;
}
