#include <iostream>
#include <limits>

template <typename T>
struct numeric_limits {
  static auto min() -> T;
};

template <>
struct numeric_limits<int> {
  static auto min() -> int { return -99999999 - 1; }
};

template <>
struct numeric_limits<double> {
  static auto min() -> double { return -999999999.99999 - 1.0; }
};

auto main() -> int {
  std::cout << std::numeric_limits<double>::min() << "\n";
  std::cout << std::numeric_limits<int>::min() << "\n";
}