#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<string>



using namespace std;

int rem(string str, int a){
	if (str.empty())
	{
		return 0;
	}
	int temp = (str[str.length() - 1] - '0') % a;
	int temp2 = 10 % a;
	str.erase(str.length() - 1);
	int temp3 = (rem(str, a)*temp2) % a;
	return (temp3 + temp) % a;
}


int gcdf(int a, int b)
{
	return b ? gcdf(b, a%b) : a;
}


int main(){
	string str;
	while (cin >> str)
	{
		
		size_t l = str.length();
		vector<int> digit;
		int sum = 0;
		int frequency[9];
		for (int i = 0; i<9; i++)
			frequency[i] = 0;
		int zero_sum = 0;
		for (size_t i = 0; i < l; i++)
		{
			if (str.at(i) != '0')
			{
				frequency[str.at(i) - '1']++;
				sum += str.at(i) - '0';
			}
			else
			{
				zero_sum++;
			}
		}

		for (size_t i = 0; i < 9; i++)
		{
			if (frequency[i])
			{
				digit.push_back(i + 1);
			}
		}
		int gcds = 0, gcd = 1;
		for (size_t i = 0; i < digit.size(); i++)
		{
			gcds = gcdf(digit[i], gcds);
		}
		if (gcdf(3, gcds) == 1)
		{
			gcd *= gcds;
		}
		if (gcds == 6)
		{
			gcd *= 2;
		}
		if ((rem(str, 81) == 0) && (gcdf(gcds, 3) == 3))
		{
			gcd *= 81;
		}
		else
		{
			if ((rem(str, 27) == 0) && (gcdf(gcds, 3) == 3))
			{
				gcd *= 27;
			}
			else
			{
				if (sum % 9 == 0)
				{
					gcd *= 9;
				}
				else
				{
					if (sum % 3 == 0)
					{
						gcd *= 3;
					}
				}
			}
		}
		if((digit.size()==1)&&(zero_sum==0))
		cout<<str;
		else
			cout << gcd << endl;
		

	}
	return 0;
}





