#include <iostream>
#include <vector>
#include <math.h>
 
using namespace std;
 
int is_simber(int n) 
{
    int numberOfTimes = 0, length = 1, x = n; 
    bool answer; 
    vector <int> nmbrs = vector <int>(); 
 
 
    //get how many digits are in the integer
 
    do
    { 
       x /= 10; 
       length++; 
    }
    while(x != 0) 
 
 
    //get the digits in the integer
 
    for(int i = 0; i<length; i++) 
    {
      nmbrs.push_back(((n/10^i) % 10); 
    }
 
 
    //checking how many times a digit occurs and also testing to see if the digits
    //meet the requirements
 
    for(int i = 0; i<length; i++) 
    {
        for(int j = 0; j<length; j++) 
        {
            if (nmbrs.at(i) == nmbrs.at(j))
            {
                numberOfTimes++; 
            }
        }
 
        if (nmbrs.at(i) % 2 == 0 && numberOfTimes % 2 == 0) 
        {
          answer = true; 
        }
 
        else if(nmbrs.at(i) % 2 == 1 && numberOfTimes % 2 == 1)
        { 
            answer = true; 
        }
 
        else if(nmbrs.at(i) % 2 == 0 && numberOfTimes % 2 == 1)
        {
            answer = false; 
            break; 
        }
 
        else if(nmbrs.at(i) % 2 == 1 && numberOfTimes % 2 == 0)
        {
            answer = false; 
            break;
        }
    }
 
    return answer;
}
 
int main(){
	int k;
	while( cin >> k) {
		cout << is_simber(k) << endl;
	}
}
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWF0aC5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBpc19zaW1iZXIoaW50IG4pIAp7CiAgICBpbnQgbnVtYmVyT2ZUaW1lcyA9IDAsIGxlbmd0aCA9IDEsIHggPSBuOyAKICAgIGJvb2wgYW5zd2VyOyAKICAgIHZlY3RvciA8aW50PiBubWJycyA9IHZlY3RvciA8aW50PigpOyAKCgogICAgLy9nZXQgaG93IG1hbnkgZGlnaXRzIGFyZSBpbiB0aGUgaW50ZWdlcgoKICAgIGRvCiAgICB7IAogICAgICAgeCAvPSAxMDsgCiAgICAgICBsZW5ndGgrKzsgCiAgICB9CiAgICB3aGlsZSh4ICE9IDApIAoKCiAgICAvL2dldCB0aGUgZGlnaXRzIGluIHRoZSBpbnRlZ2VyCgogICAgZm9yKGludCBpID0gMDsgaTxsZW5ndGg7IGkrKykgCiAgICB7CiAgICAgIG5tYnJzLnB1c2hfYmFjaygoKG4vMTBeaSkgJSAxMCk7IAogICAgfQoKCiAgICAvL2NoZWNraW5nIGhvdyBtYW55IHRpbWVzIGEgZGlnaXQgb2NjdXJzIGFuZCBhbHNvIHRlc3RpbmcgdG8gc2VlIGlmIHRoZSBkaWdpdHMKICAgIC8vbWVldCB0aGUgcmVxdWlyZW1lbnRzCgogICAgZm9yKGludCBpID0gMDsgaTxsZW5ndGg7IGkrKykgCiAgICB7CiAgICAgICAgZm9yKGludCBqID0gMDsgajxsZW5ndGg7IGorKykgCiAgICAgICAgewogICAgICAgICAgICBpZiAobm1icnMuYXQoaSkgPT0gbm1icnMuYXQoaikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG51bWJlck9mVGltZXMrKzsgCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChubWJycy5hdChpKSAlIDIgPT0gMCAmJiBudW1iZXJPZlRpbWVzICUgMiA9PSAwKSAKICAgICAgICB7CiAgICAgICAgICBhbnN3ZXIgPSB0cnVlOyAKICAgICAgICB9CgogICAgICAgIGVsc2UgaWYobm1icnMuYXQoaSkgJSAyID09IDEgJiYgbnVtYmVyT2ZUaW1lcyAlIDIgPT0gMSkKICAgICAgICB7IAogICAgICAgICAgICBhbnN3ZXIgPSB0cnVlOyAKICAgICAgICB9CgogICAgICAgIGVsc2UgaWYobm1icnMuYXQoaSkgJSAyID09IDAgJiYgbnVtYmVyT2ZUaW1lcyAlIDIgPT0gMSkKICAgICAgICB7CiAgICAgICAgICAgIGFuc3dlciA9IGZhbHNlOyAKICAgICAgICAgICAgYnJlYWs7IAogICAgICAgIH0KCiAgICAgICAgZWxzZSBpZihubWJycy5hdChpKSAlIDIgPT0gMSAmJiBudW1iZXJPZlRpbWVzICUgMiA9PSAwKQogICAgICAgIHsKICAgICAgICAgICAgYW5zd2VyID0gZmFsc2U7IAogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGFuc3dlcjsKfQoKaW50IG1haW4oKXsKCWludCBrOwoJd2hpbGUoIGNpbiA+PiBrKSB7CgkJY291dCA8PCBpc19zaW1iZXIoaykgPDwgZW5kbDsKCX0KfQ==