/*
/*
TASK:future
LANG:C++
*/ 
#include <iostream>
#include <vector>

using namespace std;
string p4,v4;
int y;
int a[256],b[256];
int main()
{
     cin>>p4>>v4>>y;
     if(p4.size()<v4.size())swap(v4,p4);
     if(p4.size()==v4.size()&&(p4<v4))swap(v4,p4);
     int sza=p4.size();
     int szb=v4.size();
     for(int i=0;i<sza;i++)
     {
          a[i]=p4[i]-'0';
     }
     for(int j=0;j<sza;j++)
     {
          if(j<sza-szb)b[j]=0;
          else b[j]=v4[j-(sza-szb)]-'0';
     }
     szb=sza;
     
     for(int i=0;i<sza;i++)
     {
          a[i]=a[i]-b[i];
     }
     for(int i=sza-1;i>0;i--)
     {
          if(a[i]<0){a[i]+=10;a[i-1]--;}
     }
     int qwe=0;
     while(a[qwe]==0){qwe++;if(qwe==sza){cout<<0<<endl<<0;return 0;}}
     for(int i=0;i<sza;i++)
     a[i]=a[i+qwe];
     sza-=qwe;
     for(int i=0;i<sza;i++)
     a[i]*=y;

     for(int i=sza-1;i>0;i--)
     {
          if(a[i]>=10){a[i-1]+=(a[i]/10);a[i]%=10;}
     }
     
     int k=sza;
     if(a[0]>=10)
     {
          do
          {a[k]=a[0]%10;
          a[0]/=10;k++;
          }
          while(a[0]>10);
     }
     
     k-=sza;
     int s=0;
     vector<int>pov[2];
     int fin[512];
     for(int i=sza;i<sza+k;i++)
     fin[i-sza]=a[i];
     for(int i=0;i<sza;i++)
     fin[i+k]=a[i];
     sza+=k;
     int q=0;
     for(int i=q;i<sza;i++)
     {cout<<fin[i];s+=fin[i];}
     cout<<endl;
     int br=0,maxbr=0,ans;
     int x=a[sza-1];
     bool used=0;
     for(int i=sza-1;i>=0;i--)
     {
          if(fin[i]==x)br++;
          else
          {if(x==0);
              else if(br>maxbr&&s%x==0){used=1;maxbr=br;ans=x;}br=1;x=fin[i];
          }
     }if(x==0);
     else if(br>maxbr&&s%x==0){used=1;maxbr=br;ans=x;}
     if(!used)ans=used;
     cout<<ans<<endl;
     
     return 0;
}
