#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector") #pragma GCC target("avx2,bmi2,lzcnt,popcnt") #include #include #include #include using namespace std; using namespace __gnu_pbds; using namespace atcoder; using ll=long long; using ld=long double; constexpr ll inf=LLONG_MAX/4; constexpr ll mod=998244353; constexpr ld eps=1e-9; constexpr ld pi=acosl(-1); static mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); #define GET_MACRO(_1,_2,_3,NAME,...) NAME #define rep2(i,n) for(ll i=0,_end_##i=(n);i<_end_##i;i++) #define rep3(i,a,b) for(ll i=(a),_end_##i=(b);i<_end_##i;i++) #define rep(...) GET_MACRO(__VA_ARGS__,rep3,rep2)(__VA_ARGS__) #define rrep2(i,n) for(ll _beg_##i=0,i=(n);i-->_beg_##i;) #define rrep3(i,a,b) for(ll _beg_##i=(a),_end_##i=(b),i=_end_##i;i-->_beg_##i;) #define rrep(...) GET_MACRO(__VA_ARGS__,rrep3,rrep2)(__VA_ARGS__) #define pb push_back #define mp make_pair #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define name(x,...) x(#x,##__VA_ARGS__) templatestruct vec_pow{using type=vector::type>;}; templatestruct vec_pow<0,T>{using type=T;}; templateusing vN=typename vec_pow::type; templateusing v=vN<1,T>; templateusing vv=vN<2,T>; templateusing vvv=vN<3,T>; templateostream&operator<<(ostream&os,const pair&p){return os<<"("<istream&operator>>(istream&is,pair&p){return is>>p.first>>p.second;} templateostream&operator<<(ostream&os,const vector&v){rep(i,v.size()){if(i)os<<" ";os<istream&operator>>(istream&is,vector&v){rep(i,v.size()){is>>v[i];}return is;} templateostream&operator<<(ostream&os,const set&s){auto it=s.begin();while(it!=s.end()){if(it!=s.begin())os<<" ";os<<*it;it++;}return os;} templateostream&operator<<(ostream&os,const multiset&s){auto it=s.begin();while(it!=s.end()){if(it!=s.begin())os<<" ";os<<*it;it++;}return os;} templateostream&operator<<(ostream&os,const map&m){os<<"{";ll f=1;auto it=m.begin();while(it!=m.end()){if(!f){os<<",";}os<first<<":"<second;it++;f=0;}return os<<"}";} templateistream&operator>>(istream&is,tuple&t){apply([&is](auto&&... args){((is>>args),...);},t);return is;} void print(){cout<<'\n';} templatevoid print(const T&t,const U&...u){cout<void dbg_out(H h,T... t){cerr<<" "<struct dbga{string n;T v;dbga(string n,T v=T()):n(n),v(v){}dbga&operator=(const T&nv){cerr<<"[upd] "<"<"<"<ostream&operator<<(ostream&os,const dbga&d){return os<istream&operator>>(istream&is,dbga&d){T t;is>>t;d=t;return is;} templatestruct dbga>{string n;vectorv;dbga(string n,int s,U d=U()):n(n),v(s,d){}dbga(string n,vectori):n(n),v(i){}dbga&operator=(const vector&nv){cerr<<"[updall] "<"<n<<"["<v[i]<<"->"<v[i]=x;return*this;}pxy&operator+=(const U&x){U o=p->v[i];p->v[i]+=x;cerr<<"[add] "<n<<"["<"<v[i]<v[i];}friend istream&operator>>(istream&is,pxy p){U x;is>>x;p=x;return is;}};pxy operator[](ll i){return pxy{this,i};}const U&operator[](ll i)const{return v[i];}size_t size()const{return v.size();}void push_back(U x){v.pb(x);cerr<<"[push] "<"<()const{return v;}}; templateostream&operator<<(ostream&os,const dbga>&d){return os<istream&operator>>(istream&is,dbga>&d){vectort=d.v;is>>t;d=t;return is;} struct grid{ll h,w;const ll dy[4]={0,0,1,-1};const ll dx[4]={1,-1,0,0};grid(ll h,ll w):h(h),w(w){}ll ok(ll r,ll c)const{return 0<=r&&rcrd(ll i)const{return{i/w,i%w};}vector>adj(ll r,ll c)const{vector>v;rep(i,4){ll nr=r+dy[i],nc=c+dx[i];if(ok(nr,nc)){v.pb({nr,nc});}}return v;}vector>to_g(const vector&s,char wall='#')const{vector>g(h*w);rep(r,h){rep(c,w){if(s[r][c]==wall){continue;}ll u=id(r,c);rep(i,4){ll nr=r+dy[i],nc=c+dx[i];if(ok(nr,nc)&&s[nr][nc]!=wall){g[u].pb(id(nr,nc));}}}}return g;}}; // ----- End of Template ----- int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cout.setf(ios::fixed); char s,k; ll n; cin>>s>>k>>n; if(n>=2){ print(s+string(n-2,'a')+k); } else{ if(s==k){ print(s); } print(-1); } return 0; }