/*
 * @Author: RBQRBQ
 * @Date: 2020-04-10 22:42:18
 * @LastEditors: RBQRBQ
 * @LastEditTime: 2020-04-12 23:54:47
 */
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> VI;
typedef pair<int,int> pii;
namespace IO{
    template<typename T>inline void read(T &x){
        x=0;ll f=1;char ch=getchar();
        while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
        while(isdigit(ch)){x=x*10+ch-48;ch=getchar();}
        x=x*f;
    }
}
using namespace IO;
ll N;
long double L;
const int maxn=5000;
long double T[maxn];

#define pi 3.14159265358979323846
int main()
{
    cin>>N>>L;
    for(int i=1;i<=N;i++)
    cin>>T[i];
    long double rx=0.0,ry=0.0;
    for(int i=1;i<=N;i++)
    for(int j=i+1;j<=N;j++)
    {
        rx+=(N-2*j+2*i)*cos((long double)2*pi*(T[j]+T[i])/(long double )(2.0*L));
        ry+=(N-2*j+2*i)*sin((long double)2*pi*(T[j]+T[i])/(long double)(2.0*L));
    }
    cout<<fixed<<setprecision(13)<<(long double)(6*rx)/(long double)((N)*(N-1)*(N-2))<<" "<<(long double)(6*ry)/(long double)((N)*(N-1)*(N-2));
}
