#include <iostream>
#include <iomanip>
#include <math.h>

using namespace std;

long double moc(int liczba, int potega)
{
long double wynik = 1;
while(potega--)
         wynik *= liczba;
return wynik;
}
int dlugosc(long double in)
{
int dlg = 0;
for (; in > 3; dlg++)
         in /= 10;
return dlg;
}
void to_bin(int input, long double & output)
{
if (input > 1)
         to_bin(input/2, output);
output*= 10;
output+= (int)(input % 2)+1;
}
void to_tab(long double input, bool tab[], int cg)
{
cout << input << "\n";
while (input >= 1)
{
         int d = dlugosc(input);
         tab[cg] = (floor( input / moc(10, d) - 1 ));

         input/= moc(10, d);
         input-= floor(input);
         input*= moc(10, d);
         cout << tab[cg];
         cg++;
}
}
int main()
{
cout << fixed << setprecision(0);
long double m = 0; // glowna
long double c = 0; // potega
long double p = 0; // przecinek
int d;
int cg = 1;
float in;
bool minus = false;
bool tablica[32] = {0};

cin >> in;
if (in < 0) minus = true, in *= -1;
to_bin(in, m);
d = dlugosc(m);
to_bin(d+127, c);

m /= moc(10, d);
m -= int(m);
m *= moc(10, d);
to_tab(m, tablica, cg);
}