#include <bits/stdc++.h>
using namespace std;
#define SR32(value, shift) ((value) >> ((shift) & 0x1f))
#define USR32(value, shift) ((int32_t) (((uint32_t) (value)) >> ((shift) & 0x1f)))
float signum(float x)
{
return (float)(1 + (((*(int32_t*)&x) >> 31) << 1));
}
int32_t signum2(int32_t i)
{
return SR32(i, 31) | USR32(-i, 31);
}
int main() {
std::cout << signum(0) << std::endl;
std::cout << signum2(0) << std::endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIFNSMzIodmFsdWUsIHNoaWZ0KSAoKHZhbHVlKSA+PiAoKHNoaWZ0KSAmIDB4MWYpKQojZGVmaW5lIFVTUjMyKHZhbHVlLCBzaGlmdCkgKChpbnQzMl90KSAoKCh1aW50MzJfdCkgKHZhbHVlKSkgPj4gKChzaGlmdCkgJiAweDFmKSkpCgpmbG9hdCBzaWdudW0oZmxvYXQgeCkKewogICAgcmV0dXJuIChmbG9hdCkoMSArICgoKCooaW50MzJfdCopJngpID4+IDMxKSA8PCAxKSk7Cn0KCmludDMyX3Qgc2lnbnVtMihpbnQzMl90IGkpCnsKICAgIHJldHVybiBTUjMyKGksIDMxKSB8IFVTUjMyKC1pLCAzMSk7Cn0KCmludCBtYWluKCkgewogICAgc3RkOjpjb3V0IDw8IHNpZ251bSgwKSA8PCBzdGQ6OmVuZGw7CiAgICBzdGQ6OmNvdXQgPDwgc2lnbnVtMigwKSA8PCBzdGQ6OmVuZGw7Cn0=