//auto 関数名 = [(&:ラムダ外の引数をとる時))](引数の型1 引数名1, 引数の型2, 引数名2, ...) { 関数の処理 }; //inside main() define function. take care of };
// for (int tmp = 0; tmp < (1 << ビット数); tmp++) {
//   bitset<ビット数> s(tmp);
//   // (ビット列sに対する処理)
// }
// sort(配列変数.begin(), 配列変数.end());
// do {
//   // 順列に対する処理
// } while (next_permutation(配列変数.begin(), 配列変数.end()));
//const double PI = acos(-1); M_PI
// cout << fixed << setprecision(10);
#include <bits/stdc++.h>
#include <regex>
using namespace std;
using ll = int64_t;
using P = pair<int,int>;
#define _GLIBCXX_DEBUG 
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define all(v) v.begin(), v.end() //sort(all(vec)); ,reverse(all(vec));etc
int main(){
 string s;
 cin>>s;
 vector<bool>vec(26);
 rep(i,s.size()){
   vec.at((int)(s.at(i))-97)=1;
 }
 rep(i,26){
   if(!vec.at(i)){
     cout<<(char)(i+97)<<endl;
     return 0;
   }
 }
 cout<<"None"<<endl;

}



#include<iostream>
#include<cmath>


int main() {
	int a = {};
	int a2 = {};
	int a3 = {};
	std::cin >> a;

	a2 =std::pow(a, 2);
	a3 = std::pow(a, 3);

	a = a + a2 + a3;
	std::cout << a << std::endl;
}