Xâu là một dãy kí tự từ bảng mã ASCII, số lượng kí tự trong xâu gọi là độ dài xâu. Kí hiệu: *|S|* là độ dài xâu *S*. Một xâu con của S là một dãy liên tục các kí tự trong *S*. Một xâu gọi là xâu đối xứng khi đọc xâu đó từ trái sang phải cũng như đọc nó từ phải sang trái. *Ví dụ:* các xâu a, aa, aaa, abba, abcba là các xâu đối xứng. Xâu *T* được gọi là một xâu chuyển vòng của xâu *S* khi *T* được tạo bằng cách ngắt một số kí tự đầu xâu và ghép vào cuối xâu *S*. Ví dụ: các xâu bcd**a**, cd**ab**, d**abc** là các xâu chuyển vòng của xâu abcd. Xâu *S* cũng là một xâu chuyển vòng của *S*. **yêu cầu:** Cho một xâu *S* chỉ gồm các chữ cái latin in thường, hãy tìm độ dài xâu con đối xứng dài nhất trong các xâu chuyển vòng của *S*. ##Input (SUBPALIN.INP) **Dữ liệu** vào từ tệp văn bản `SUBPALIN.INP` gồm một dòng chứa xâu *S* có độ dài không quá 10^6. ##Output (SUBPALIN.OUT) **Kết quả** ghi ra tệp văn bản `SUBPALIN.OUT` gồm một dòng ghi số nguyên dương là độ dài lớn nhất của xâu con đối xứng tìm được. ##Scoring - **Subtask 1** (15%): *|S|* <= 500; - **Subtask 2** (20%): *|S|* <= 5*10^3; - **Subtask 3** (35%): *|S|* <= 3*10^5; - **Subtask 4** (30%): *|S|* <= 10^6; ##Example !!! question "Test 1" ???+ "Sample input" ```sample ababcb ```| ???+ success "Sample output" ```sample 5ư ```