#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // C++ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include //#include #define rep(i,j,k) for(int i=(int)j;i<(int)k;i++) #define ll long long #define Sort(v) sort(all(v)) #define INF 1000000000 #define END return 0 #define pb push_back #define se second #define fi first #define pb push_back #define all(v) (v).begin() , (v).end() #define MP make_pair #define MOD 1000000007LL using namespace std; int day[12]={31,28,31,30,31,30,31,31,30,31,30,31}; string s; map mp; void dfs(string s,string ans){ if(s.empty()){ mp[ans]=1; return ; } string t=s; s.erase(s.begin()); dfs(s,ans+t[0]); s=t; s.erase(s.end()-1); dfs(s,ans+t[t.size()-1]); return; } int main (){ cin>>s; dfs(s,""); int ans=0; for(auto x :mp){ ans+=x.second; } cout<