#include <bits/stdc++.h>
using namespace std;
template <typename T>
T gcd(T a, T b) {
  if (a > b) swap(a, b);
  if (a == 0) return b;
  return gcd(b % a, a);
}
template <typename InputItr, typename T>
T gcd(InputItr first, InputItr last, T init) {
  for (; first != last; ++first) init = gcd(init, *first);
  return init;
}
template <typename T>
using vec = vector<T>;
template <typename T>
using vvec = vector<vector<T>>;
template <typename T>
class position {
 public:
  position(T i = 0, T j = 0) {
    x = i;
    y = j;
  }
  position(pair<T, T> p) {
    x = p.first;
    y = p.second;
  }
  position(T a[]) {
    x = a[0];
    y = a[1];
  }
  T x;
  T y;
  position<T> operator+(position<T> p) {
    return position(this->x + p.x, this->y + p.y);
  }
  position<T> operator-(position<T> p) {
    return position(this->x - p.x, this->y - p.y);
  }
  position<T> operator+(pair<T, T> p) {
    return position(this->x + p.first, this->y + p.second);
  }
  position<T> operator-(pair<T, T> p) {
    return position(this->x - p.first, this->y - p.second);
  }
  position<T> operator+(T p[2]) {
    return position(this->x + p[0], this->y + p[1]);
  }
  position<T> operator-(T p[2]) {
    return position(this->x - p[0], this->y - p[1]);
  }
  void operator+=(position<T> p) {
    this->x += p.x;
    this->y += p.y;
  }
  void operator-=(position<T> p) {
    this->x -= p.x;
    this->y -= p.y;
  }
  void operator+=(pair<T, T> p) {
    this->x += p.first;
    this->y += p.second;
  }
  void operator-=(pair<T, T> p) {
    this->x -= p.first;
    this->y -= p.second;
  }
  void operator+=(T p[2]) {
    this->x += p[0];
    this->y += p[1];
  }
  void operator-=(T p[2]) {
    this->x -= p[0];
    this->y -= p[1];
  }
  void swap() { std::swap(x, y); }
  pair<T, T> topair() { return make_pair(x, y); }
};
int main() {
  int r;
  cin >> r;
  cout << r * r * 3.141592;
}
