#include using namespace std; using ll = long long; using ld = long double; // #define int long long #define pii pair #define pll pair #define vi vector #define all(v) (v).begin(), (v).end() #define rall(v) (v).rbegin(), (v).rend() #define mp make_pair #define pb push_back #define sz(v) (int)(v).size() // #define endl '\n' const ld eps = 1e-8; const ll mod = 1e9 + 7; const int inf0 = 1e9 + 10; const ll inf = 2e18 + 10; void solve(); signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); #ifdef LC freopen("input.txt", "r", stdin); // freopen("output.txt", "w", stdout); #endif cout << fixed << setprecision(20); int t = 1; //cin >> t; while (t--) { solve(); } return 0; } const int MAXN = 100; const ld PI = atan2(0, -1); ld dp[MAXN][MAXN][MAXN]; void solve() { int n; cin >> n; int p; cin >> p; vector a(n); for (int i = 0; i < n; ++i) cin >> a[i]; for (int i = 0; i < n; ++i) { for (int d = 1; d < n; ++d) { int j = (i + d) % n; dp[0][i][j] = sinl((a[j] - a[i]) / 180 * PI) * 1e6; //cout << "dp[0][" << i << "][" << j << "] = " << dp[0][i][j] << "\n"; } } for (int pins = 1; pins <= p - 2; ++pins) { for (int i = 0; i < n; ++i) { for (int d = pins + 1; d < n; ++d) { int j = (i + d) % n; dp[pins][i][j] = -100; for (int dk = pins; dk < d; ++dk) { int k = (i + dk) % n; dp[pins][i][j] = max(dp[pins][i][j], dp[pins - 1][i][k] + dp[0][k][j]); } } } } ld ans = 0; for (int i = 0; i < n; ++i) { for (int d = p - 2 + 1; d < n; ++d) { int j = (i + d) % n; ans = max(ans, dp[p - 2][i][j] + dp[0][j][i]); } } cout << ans / 2 << "\n"; } // g++ -DLC -o a a.cpp && ./a