#include <iostream>
#include <cstdio>
#include <cctype>
#include <vector>
#include <cstdint>
#include <string>
#include <limits>
//test data.
// 10 -10 1.1 -1.1 1234567890 -1234567890 1.234567890
//
bool IsNeeded(int ch) {
if (std::isdigit(ch)) return true;
if (ch == 'e') return true;
if (ch == '+') return true;
if (ch == '-') return true;
if (ch == '.') return true;
return false;
}
bool Info(std::vector<char>& SS, bool IsFloat) {
if (IsFloat) {
double D = atof(SS.data());
if (!(std::numeric_limits<float>::max() >=D || std::numeric_limits<float>::min() <= D)) {
std::cout << "double " <<" raw:"<< D << ' ' << sizeof(D)<<"byte" << std::endl;
}
else {
std::cout << "float " <<" raw:"<< (float)D << ' ' << sizeof(float)<<"byte" << std::endl;
}
}
else {
std::intmax_t X = atoll(SS.data());
std::intmax_t N = X;
std::size_t B = 0;
if (X < 0) {
X = (~X) + 1;
}
for (std::size_t i = 0; i < std::numeric_limits < std::intmax_t > ::digits; i++) {
if ((X & (1ll << i)) > 0) B = i;
}
std::cout << "int" << B+1 << "_t " <<"raw:"<< N << ' ' << (B / 8) + 1 <<"byte"<<" ???? "<< std::endl;
}
return true;
}
int main() {
std::vector<char> S;
int o = 0;
std::vector<char> SS;
bool F = false;
bool IsFloat = false;
bool IsDot = false;
while (( o= std::getchar()) != EOF) {//tape sequence??
if (F == false && (o == '+' || o == '-')) {
SS.push_back(o);
continue;
}
if (o == '.' && IsDot == false) {
IsFloat = true;
IsDot = true;
SS.push_back(o);
continue;
}
if (o == 'e' && IsFloat) {
F = false;
SS.push_back(o);
}
if (o == ' ') {
SS.push_back('\0');
Info(SS, IsFloat);
IsFloat = false;
IsDot = false;
SS.clear();
}
if (IsNeeded(o)) {
SS.push_back(o);
}
}
if (SS.size()) { Info(SS, IsFloat); }
SS.clear();
return 0;
}