#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);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPG1hdGguaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpsb25nIGRvdWJsZSBtb2MoaW50IGxpY3piYSwgaW50IHBvdGVnYSkKewpsb25nIGRvdWJsZSB3eW5payA9IDE7CndoaWxlKHBvdGVnYS0tKQogICAgICAgICB3eW5payAqPSBsaWN6YmE7CnJldHVybiB3eW5pazsKfQppbnQgZGx1Z29zYyhsb25nIGRvdWJsZSBpbikKewppbnQgZGxnID0gMDsKZm9yICg7IGluID4gMzsgZGxnKyspCiAgICAgICAgIGluIC89IDEwOwpyZXR1cm4gZGxnOwp9CnZvaWQgdG9fYmluKGludCBpbnB1dCwgbG9uZyBkb3VibGUgJiBvdXRwdXQpCnsKaWYgKGlucHV0ID4gMSkKICAgICAgICAgdG9fYmluKGlucHV0LzIsIG91dHB1dCk7Cm91dHB1dCo9IDEwOwpvdXRwdXQrPSAoaW50KShpbnB1dCAlIDIpKzE7Cn0Kdm9pZCB0b190YWIobG9uZyBkb3VibGUgaW5wdXQsIGJvb2wgdGFiW10sIGludCBjZykKewpjb3V0IDw8IGlucHV0IDw8ICJcbiI7CndoaWxlIChpbnB1dCA+PSAxKQp7CiAgICAgICAgIGludCBkID0gZGx1Z29zYyhpbnB1dCk7CiAgICAgICAgIHRhYltjZ10gPSAoZmxvb3IoIGlucHV0IC8gbW9jKDEwLCBkKSAtIDEgKSk7CgogICAgICAgICBpbnB1dC89IG1vYygxMCwgZCk7CiAgICAgICAgIGlucHV0LT0gZmxvb3IoaW5wdXQpOwogICAgICAgICBpbnB1dCo9IG1vYygxMCwgZCk7CiAgICAgICAgIGNvdXQgPDwgdGFiW2NnXTsKICAgICAgICAgY2crKzsKfQp9CmludCBtYWluKCkKewpjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbigwKTsKbG9uZyBkb3VibGUgbSA9IDA7IC8vIGdsb3duYQpsb25nIGRvdWJsZSBjID0gMDsgLy8gcG90ZWdhCmxvbmcgZG91YmxlIHAgPSAwOyAvLyBwcnplY2luZWsKaW50IGQ7CmludCBjZyA9IDE7CmZsb2F0IGluOwpib29sIG1pbnVzID0gZmFsc2U7CmJvb2wgdGFibGljYVszMl0gPSB7MH07CgpjaW4gPj4gaW47CmlmIChpbiA8IDApIG1pbnVzID0gdHJ1ZSwgaW4gKj0gLTE7CnRvX2JpbihpbiwgbSk7CmQgPSBkbHVnb3NjKG0pOwp0b19iaW4oZCsxMjcsIGMpOwoKbSAvPSBtb2MoMTAsIGQpOwptIC09IGludChtKTsKbSAqPSBtb2MoMTAsIGQpOwp0b190YWIobSwgdGFibGljYSwgY2cpOwp9