// Rozwiazanie zadania 2.1
// (c) A.Lukaszewski 2012

#include <stdio.h>

int Cyfra(char z){ // sprawdza czy znak jest cyfra
   return (z>='0' && z<='9');
}

int GetDec(int *x){
   char z;
   int  r=0, s=1;  // wartosc i znak(+/-)

   do { z=getchar(); } while (z==' ' || z=='\n');

   if ( z=='+' )   // jesli jest +/- to zapamietujemy w s
      z=getchar(); 
   else if ( z=='-' ) {
      s=-1;
      z=getchar();
   }

   if (!Cyfra(z)) return -1; // jedyny zglaszany blad

   do {            // tu juz tylko cyfry, pierwsza juz wczytana
      r = 10*r + (z-'0');
      z=getchar();
   } while ( Cyfra(z) );
    
   *x = s*r;
   return 0;
}

void PutDec(int x){                   // rekurencja zamiast tablicy
   int y;
   if(x<0) { putchar('-'); x*=-1; }   // wypisujemy minus
   y=x/10;
   if (y>0) PutDec(x/10);
   putchar('0' + x%10);
}

int main() {
   int x = 1;
   while (x) {                      // czytamy az do zera
      if (GetDec(&x)) return -1;    //     lub jak blad
      PutDec(x); putchar('\n');
   }
   return 0;
}
