#include <bits/stdc++.h>
using namespace std;
bool endline = false;
bool endline2 = false;
template <class T>
istream &operator>>(istream &in, vector<T> &v) {
  for (auto &i : v) {
    in >> i;
  }
  return in;
}
template <class T>
ostream &operator<<(ostream &out, const vector<T> &v) {
  for (auto i : v) {
    out << i;
    if (!endline2)
      cout << ' ';
    else
      cout << '\n';
  }
  if (endline && !endline2) cout << '\n';
  return out;
}
template <class T, class U>
istream &operator>>(istream &in, pair<T, U> &a) {
  in >> a.first >> a.second;
  return in;
}
template <class T, class U>
ostream &operator<<(ostream &out, const pair<T, U> &a) {
  out << a.first << ' ' << a.second;
  return out;
}
long double n, R;
bool good(long double r) {
  long double alpha = (3.1415926535 * (n - 2)) / n;
  long double a = 2 * r;
  long double r1 = sqrt(2 * r * R + R * R);
  long double rcur = a / (2 * tan(3.1415926535 / n));
  return rcur > r1;
}
int main() {
  cout << setprecision(7) << fixed;
  cin >> n >> R;
  long double left, right, middle;
  left = 0;
  right = 1e9;
  for (int i = 0; i < 200; i++) {
    middle = (right + left) / 2.0;
    if (good(middle)) {
      right = middle;
    } else {
      left = middle;
    }
  }
  cout << right;
  return 0;
}
