#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;
}