#include<bits/stdc++.h>
using namespace std;
typedef complex<double> P;
#define MAX_N 45
double PI = acos(-1.0);
double INF = 1e9;

int n,m;
P t[MAX_N];
double dp[MAX_N][MAX_N];

double calc(P s,P t){
  return imag(t*conj(s))/2.0;
}

double solve(int si){
  P a[MAX_N];
  for(int i=0;i<n;i++){
    a[i]=t[(i+si)%n];
  }

  for(int i=0;i<MAX_N;i++)
    for(int j=0;j<MAX_N;j++)
	dp[i][j]=-INF;
  dp[0][1]=0;

  double res=0;

  for(int i=0;i<n;i++){
    for(int j=1;j<m;j++){
      for(int k=i+1;k<n;k++){
	dp[k][j+1]=max(dp[k][j+1],dp[i][j]+calc(a[i],a[k]));
      }
    }
    res=max(res, dp[i][m]+calc(a[i],a[0]));
  }
  return res;
}

int main(){
  while(1){
    cin>>n>>m;
    if(n==0&&m==0)break;
    for(int i=0;i<n;i++){
      double d;
      cin>>d;
      t[i]=P(cos(d*2.0*PI),sin(d*2.0*PI));
    }
    double ans=0;
    for(int i=0;i<n;i++)ans=max(ans,solve(i));
    printf("%.6f\n",ans);
  }
  return 0;
}