#include <iostream>
#include <string>
#include <vector>
unsigned int char_classification(const char ch)
{
unsigned int bits_set = 0;
if (iscntrl(ch)) bits_set |= 1U;
if (isprint(ch)) bits_set |= 1U << 1;
if (isspace(ch)) bits_set |= 1U << 2;
if (isblank(ch)) bits_set |= 1U << 3;
if (isgraph(ch)) bits_set |= 1U << 4;
if (ispunct(ch)) bits_set |= 1U << 5;
if (isalnum(ch)) bits_set |= 1U << 6;
if (isalpha(ch)) bits_set |= 1U << 7;
if (isupper(ch)) bits_set |= 1U << 8;
if (islower(ch)) bits_set |= 1U << 9;
if (isdigit(ch)) bits_set |= 1U << 10;
if (isxdigit(ch)) bits_set |= 1U << 11;
return bits_set;
}
const std::vector<unsigned int>& string_classification(const std::string& input)
{
const unsigned int n = input.length();
static std::vector<unsigned int> classification(n); //Am I going crazy?
for (unsigned int i = 0; i < n; ++i)
classification[i] = char_classification(input[i]);
return classification;
}
int main()
{
std::string line;
std::getline(std::cin, line);
std::vector<unsigned int> classification{ string_classification(line) };
return 0;
}