#include using namespace std; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; set st; void dfs( string S, string T ) { //基底部:Sが空になったら終わり if( S.empty() ) { //重複を排除 st.emplace( T ); return; } //再帰部: //S[ 1 ] - S[ S.size() - 1 ]までを次に渡す, Tに「先頭」文字列をくっつける dfs( S.substr( 1, S.size() - 1 ), T + S[ 0 ] ); //S[ 0 ] - S[ S.size() - 1 ]までを次に渡す, Tに「末尾」文字列をくっつける dfs( S.substr( 0, S.size() - 1 ), T + S[ S.size() - 1 ] ); } int main() { string S, T; cin >> S; dfs( S, T ); cout << st.size() << endl; return 0; }