#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
int longestDecomposition( string S) {
int fg, i, j, res= 0 ;
for ( ;; ) {
fg = 0 ;
for ( i= 1 ; 2 * i<= S.size ( ) ; i++ ) {
if ( S.substr ( 0 ,i) == S.substr ( S.size ( ) - i,i) ) {
res+ = 2 ;
S = S.substr ( i,S.size ( ) - 2 * i) ;
fg = 1 ;
break ;
}
}
if ( fg== 0 ) {
if ( S.size ( ) ) {
res++ ;
}
break ;
}
}
return res;
}
}
;
// cLay varsion 20190810-2
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// int longestDecomposition(string S) {
// int i, j, fg, res = 0;
//
// for(;;){
// fg = 0;
// for(i=1;2i<=S.size();i++){
// if(S.substr(0,i) == S.substr(S.size()-i,i)){
// res+=2;
// S = S.substr(i,S.size()-2i);
// fg = 1;
// break;
// }
// }
// if(fg==0){
// if(S.size()) res++;
// break;
// }
// }
//
// return res;
// }
// };
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBtYWluIGR1bW15X21haW4KaW50IG1haW4oKXsKICByZXR1cm4gMDsKfQojdW5kZWYgbWFpbgpjbGFzcyBTb2x1dGlvbnsKICBwdWJsaWM6CiAgaW50IGxvbmdlc3REZWNvbXBvc2l0aW9uKHN0cmluZyBTKXsKICAgIGludCBmZywgaSwgaiwgcmVzPTA7CiAgICBmb3IoOzspewogICAgICBmZyA9IDA7CiAgICAgIGZvcihpPTE7MippPD1TLnNpemUoKTtpKyspewogICAgICAgIGlmKFMuc3Vic3RyKDAsaSkgPT0gUy5zdWJzdHIoUy5zaXplKCktaSxpKSl7CiAgICAgICAgICByZXMrPTI7CiAgICAgICAgICBTID0gUy5zdWJzdHIoaSxTLnNpemUoKS0yKmkpOwogICAgICAgICAgZmcgPSAxOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmKGZnPT0wKXsKICAgICAgICBpZihTLnNpemUoKSl7CiAgICAgICAgICByZXMrKzsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXM7CiAgfQp9CjsKLy8gY0xheSB2YXJzaW9uIDIwMTkwODEwLTIKCi8vIC0tLSBvcmlnaW5hbCBjb2RlIC0tLQovLyAjZGVmaW5lIG1haW4gZHVtbXlfbWFpbgovLyB7fQovLyAjdW5kZWYgbWFpbgovLyAKLy8gY2xhc3MgU29sdXRpb24gewovLyBwdWJsaWM6Ci8vICAgaW50IGxvbmdlc3REZWNvbXBvc2l0aW9uKHN0cmluZyBTKSB7Ci8vICAgICBpbnQgaSwgaiwgZmcsIHJlcyA9IDA7Ci8vIAovLyAgICAgZm9yKDs7KXsKLy8gICAgICAgZmcgPSAwOwovLyAgICAgICBmb3IoaT0xOzJpPD1TLnNpemUoKTtpKyspewovLyAgICAgICAgIGlmKFMuc3Vic3RyKDAsaSkgPT0gUy5zdWJzdHIoUy5zaXplKCktaSxpKSl7Ci8vICAgICAgICAgICByZXMrPTI7Ci8vICAgICAgICAgICBTID0gUy5zdWJzdHIoaSxTLnNpemUoKS0yaSk7Ci8vICAgICAgICAgICBmZyA9IDE7Ci8vICAgICAgICAgICBicmVhazsKLy8gICAgICAgICB9Ci8vICAgICAgIH0KLy8gICAgICAgaWYoZmc9PTApewovLyAgICAgICAgIGlmKFMuc2l6ZSgpKSByZXMrKzsKLy8gICAgICAgICBicmVhazsKLy8gICAgICAgfQovLyAgICAgfQovLyAgICAgCi8vICAgICByZXR1cm4gcmVzOwovLyAgIH0KLy8gfTsK