/*
TASK:string
LANG:C++
*/
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <algorithm>
#include <map>

using namespace std;

string S,T;

int main()
{
 cin>>S;
 cin>>T;
 int P; cin>>P;
 
 int LetS=S.size();
 int LetC=T.size();

 
 vector< pair<int,string> > Data; 
 Data.push_back( make_pair(1,"") );
 
 for ( int i=0 ; i<P; i++ )
 {
         vector< pair<int,string> > Dattmp;

         if (Data[0].second.size()<LetS)
            for ( int c=0 ; c <  Data.size(); c++)
                  for(int z=0;z<LetC;z++)
                  {
                          string tmp = Data[c].second;
                          tmp+=T[z];
                          if (tmp!=S)
                          Dattmp.push_back( make_pair(1,tmp ));
                  }
         else
         {
         for ( int c=0 ; c < Data.size() ; c++)
                 for(int z=0; z<LetC; z++)
                 {

                            string cur="";
                            for(int i=1;i<Data[c].second.size();i++)
                                    cur+=Data[c].second[i];
                            cur+=T[z];
                                                        
                            if (cur!=S)
                            {
                            //cout<<" :"<<cur<<": ";
                             Dattmp.push_back( make_pair(Data[c].first , cur));
                             }
                 }

        };
         
         Data.clear();
         Data = Dattmp;
         
         Data = Dattmp;
         //cout<<"\n";
         //for (int i=0;i<Data.size();i++) cout<<Data[i].second<<"\n";
         //cout<<"\n\n";
         
 };
cout<<Data.size()<<endl;

 
 return 0;
};
