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

typedef long double ld;
typedef long long ll;

const ld PI = 4 * atan(1);

ll N, L;
vector<ll> T;
ld x = 0, y = 0;
void add_weights(ll a, ll w){
    if(w == 0) return;
    ld arg = 2 * PI * a / L;
    x += (cos(arg) * w), y += (sin(arg) * w);
}
int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
    cin >> N >> L; L *= 2;
    T.resize(N);
    for(int i = 0; i < N; i++) cin >> T[i], T[i] *= 2;
    sort(T.begin(), T.end());
    for(int i = 0; i < N; i++){
        for(int j = i + 1; j < N; j++){
            ll a1 = T[i], a2 = T[j];
            ll m1 = (a1 + a2) / 2, m2 = (m1 + L / 2) % L;
            ll n1 = N - (j - i - 1 + 2), n2 = j - i - 1;
            ll sub = min(n1, n2);
            n1 -= sub, n2 -= sub;
            add_weights(m1, n1);
            add_weights(m2, n2);

        }
    }
    ll tot = N * (N - 1) * (N - 2) / 6;
    x /= tot; y /= tot;
    cout << fixed << setprecision(100);
    cout << x << " " << y << '\n';
    return 0;
}
