/**
 * code generated by JHelper
 * More info: https://github.com/AlexeyDmitriev/JHelper
 * @author
 */

#include<bits/stdc++.h>
using namespace std;
using ll=int_fast64_t;
#define fr(i,n) for(int i=0;i<(n);++i)
#define Fr(i,n) for(int i=1;i<=(n);++i)
#define ifr(i,n) for(int i=(n)-1;i>=0;--i)
#define iFr(i,n) for(int i=(n);i>0;--i)

class DIncenters {
public:
    void solve(istream& in, ostream& out) {
        cin.tie(nullptr);
        ios::sync_with_stdio(false);
        long double x=0,y=0;
        int n,l;
        in>>n>>l;
        long double pi=atan(1)*4/l;
        vector<int> t(n);
        for(auto&i:t) in>>i;
        fr(i,n){
            fr(j,i){
                x+=(n-i+j-1)*cos(pi*(t[i]+t[j]));
                y+=(n-i+j-1)*sin(pi*(t[i]+t[j]));
                x-=(i-j-1)*cos(pi*(t[i]+t[j]));
                y-=(i-j-1)*sin(pi*(t[i]+t[j]));
            }
        }
        x/=(ll)n*(n-1)*(n-2)/6,y/=(ll)n*(n-1)*(n-2)/6;
        if(abs(x)<1e-12) x=0;
        if(abs(y)<1e-12) y=0;
        out<<setprecision(15)<<x<<" "<<y<<endl;
    }
};

int main() {
    DIncenters solver;
    std::istream& in(std::cin);
    std::ostream& out(std::cout);
    solver.solve(in, out);
    return 0;
}
