/*
TASK:future
LANG:C++
*/
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int br[16],m,s;
int main()
{
 string s1,s2;
 vector <int> v;
 int g,i,o,i2=0,t;
 cin>>s1>>s2>>g;
 if(s1.size()>s2.size())i2=1;
 else
  if(s2.size()>s1.size())i2=2;
  else
   for(i=0;i<s1.size();i++)
    if(s1[i]>s2[i]){i2=1;break;}
    else
     if(s2[i]>s1[i]){i2=2;break;}
 o=0;
 if(i2==1)
 {
  for(i=s2.size()-1;i>=0;i--)
  {
   if(o)s1[i+(s1.size()-s2.size())]--;
   if(s1[i+(s1.size()-s2.size())]<s2[i])
   {
    o=1;
    t=s2[i]-s1[i+(s1.size()-s2.size())];
   }
   else t=s1[i+(s1.size()-s2.size())]-s2[i];
   v.push_back(t);
  }
  if(o)s1[s1.size()-s2.size()-1]--;
  i=s1.size()-s2.size()-1;
  while(i>=0)
  {
   t=s1[i]-'0';
   v.push_back(t);
   i--;
  }
 }
 else
  if(i2==2)
  {
  for(i=s1.size()-1;i>=0;i--)
   {
    if(o)s2[i+(s2.size()-s1.size())]--;
    if(s2[i+(s2.size()-s1.size())]<s1[i])
    {
     o=1;
     t=s1[i]-s2[i+(s2.size()-s1.size())];
    }
    else t=s2[i+(s2.size()-s1.size())]-s1[i];
    v.push_back(t);
   }
   if(o)s2[s2.size()-s1.size()-1]--;
   i=s2.size()-s1.size()-1;
   while(i>=0)
   {
    t=s2[i]-'0';
    v.push_back(t);
    i--;
   }
  }
  else
  {
   v.push_back(0);
  }
 o=0;
 for(i=0;i<v.size();i++)
 {
  v[i]=(v[i]*g)+o;
  o=v[i]/10;
  v[i]%=10;
 }
 i=o%10;
 i2=o/10;
 if(o)
 {
  v.push_back(i);
  if(i2)v.push_back(i2);
 }
 i=v.size()-1;
 while(!v[i])i--;
 while(i>=0)
 {
  cout<<v[i];
  br[v[i]]++;
  s+=v[i];
  i--;
 }
 cout<<"\n";
 if(v.size()==1&&!v[0])cout<<"0\n";
 else
 {
  for(i=1;i<=9;i++)
   if(s%i==0&&br[i]>m)m=br[i];
  for(i=0;i<v.size();i++)
   if(v[i])
    if(br[v[i]]==m&&s%v[i]==0){cout<<v[i]<<"\n";break;}
 }
 //for(i=0;i<9;i++)cout<<br[i]<<" ";
 //cout<<br[i]<<endl;
 return 0;
}
