#include <iostream>
#include <iomanip>
#include <limits>

using namespace std;

template<class T>
  constexpr T pi_v = static_cast<T>(3.141592653589793238462643383279502884L);

int main() {
  cout
    << pi_v<int> << endl
    << setprecision(numeric_limits<float>::digits10 + 1)
    << pi_v<float> << endl
    << setprecision(numeric_limits<double>::digits10 + 1)
    << pi_v<double> << endl
    << setprecision(numeric_limits<long double>::digits10 + 1)
    << pi_v<long double> << endl;
}
