#include<iostream.h>
#include<string>
using namespace std;

bool vdigit(string d, string b)
{
	return (d.length() < b.length()) || (d.length() == b.length() && d < b);
}
int base(string d, string b)
{
	int r = 0;
	if(vdigit(d,b)) r++;
	if(d.length() <= 1) return r;
	for(int p=d.length()-1; p>0; p--) if(vdigit(d.substr(p), b)) r+=base(d.substr(0,p), b);
	return r;
}

int main()
{
	string l;
	int r = 0;
	while(getline(cin,l) && (l != "#"))
	{
		r = 0;
		for(int p=l.length()-1; p>0 && (l[p] != '0'); p--) r+=base(l.substr(0,p),l.substr(p));
		cout << "The code " << l;
		if(r>0) cout << " can represent " << r << " numbers.";
		else cout << " is invalid.";
		cout << endl;
	}
	return 0;
}

