/*
TASK:FUTURE
LANG:C++
*/ 
#include<iostream>
#include<string>
using namespace std;
string n, m;
short a[256], b[256], c[256], d[256], e[3][256], age, br, len, len1, dels[10], max_dels[10], maxi, max_br;
int n_len, m_len, broy[10], sum;
int n_bigger_than_m()
{
 for(int i=0; i<n_len; i++)
 {
  if(n[i]>m[i]) return 1;
  if(n[i]<m[i]) return 2;
 } 
 return 0;
}
void conv()
{
 n_len=n.size();
 m_len=m.size();
 for(int i=n_len-1; i>=0; i--)
  a[br++]=n[i]-'0';
 br=0; 
 for(int i=m_len-1; i>=0; i--)
  b[br++]=m[i]-'0'; 
 br=0;
}
void razl()
{
 if(n_len>m_len)
 {
                 for(int i=0; i<n_len; i++) c[i]=a[i]-b[i];
                 for(int i=0; i<n_len; i++)
                  if(c[i]<0) { c[i]+=10; c[i+1]--; }
 }
  
 if(n_len<m_len)
 {
                 for(int i=0; i<m_len; i++) c[i]=b[i]-a[i]; 
                 for(int i=0; i<m_len; i++)
                  if(c[i]<0) { c[i]+=10; c[i+1]--; }
 }
  
 if(n_len==m_len)
 {
  if(n_bigger_than_m()==1)
   for(int i=0; i<n_len; i++) c[i]=a[i]-b[i];
  else
   if(n_bigger_than_m()==2)
    for(int i=0; i<n_len; i++) c[i]=b[i]-a[i];    
  for(int i=0; i<n_len; i++)
   if(c[i]<0) { c[i]+=10; c[i+1]--; }
 }
}
int c_len()
{
 int brr=255;   
 for(int i=255; i>=0; i--)
  if(c[i]==0) brr--;
  else break; 
 return brr+1;   
}
int d_len()
{
 int brr=255;   
 for(int i=255; i>=0; i--)
  if(d[i]==0) brr--;
  else break; 
 return brr+1;   
}
//****************************************
void mult()
{
 if(age<10)
 {
  for(int i=0; i<len; i++) e[0][i]=c[i]*age;
  for(int i=0; i<len; i++) { e[0][i+1]+=e[0][i]/10; e[0][i]%=10; }
 }
 if(age<100&&age>9)
 {
  for(int i=0; i<len; i++) { e[0][i]=age%10; e[0][i]*=c[i]; }
  for(int i=1; i<len+1; i++) { e[1][i]=age/10; e[1][i]*=c[i-1]; }
  for(int i=0; i<len; i++) { e[0][i+1]+=e[0][i]/10; e[0][i]%=10; }
  for(int i=1; i<len+1; i++) { e[1][i+1]+=e[1][i]/10; e[1][i]%=10; }
 }
 if(age>99)
 {
  for(int i=0; i<len; i++) { e[0][i]=age%10; e[0][i]*=c[i]; }
  for(int i=1; i<len+1; i++) { e[1][i]=age/10; e[1][i]%=10; e[1][i]*=c[i-1]; }
  for(int i=2; i<len+2; i++) e[2][i]=c[i-2];
  for(int i=0; i<len; i++) { e[0][i+1]+=e[0][i]/10; e[0][i]%=10; }
  for(int i=1; i<len+1; i++) { e[1][i+1]+=e[1][i]/10; e[1][i]%=10; }
  for(int i=2; i<len+2; i++) { e[2][i+1]+=e[2][i]/10; e[2][i]%=10; }
 }
}
//****************************************
void form_d()
{
 for(int i=0; i<len+2; i++) d[i]=e[0][i]+e[1][i]+e[2][i];
 for(int i=0; i<len+2; i++) { d[i+1]+=d[i]/10; d[i]%=10; }
}
void how_many()
{
 for(int i=0; i<len1; i++)
 {
  sum+=d[i];
  broy[d[i]]++;
 }
}
void deliteli()
{
 for(int i=1; i<10; i++)
  if(broy[i]&&sum%i==0) dels[++dels[0]]=i;
 for(int i=1; i<=dels[0]; i++) 
  max_dels[++max_dels[0]]=broy[dels[i]];
}
void print()
{
 br=255;   
 for(int i=255; i>=0; i--)
  if(d[i]==0) br--;
  else break;
 for(int i=br; i>=0; i--) cout<<d[i];
 cout<<endl;
 for(int i=1; i<=max_dels[0]; i++)
  if(max_dels[i]>=max_br){max_br=max_dels[i]; maxi=i;}
 cout<<dels[maxi]<<endl; 
}
int main()
{
    cin >> n >> m >> age;
    conv();
    razl();
    len=c_len();
    mult();
    form_d();
    len1=d_len();
    how_many();
    deliteli();
    print();
    return 0;
}
