{"trustable":true,"prependHtml":"\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\" type\u003d\"text/javascript\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cdiv class\u003d\"panel_content\"\u003eAlice just tries to maintain a string, with a kind of operation and a kind of query.\u003cbr\u003eThe kind of operation allows to insert a character at the end of the string.\u003cbr\u003eThe kind of query considers the substring, denoted by $T$, of the string from the $l$-th character to the $r$-th one, and asks the maximum length of substring of $T$ which appears at least twice in $T$.\u003cbr\u003eIf no substring appears at least twice in $T$, the outcome should be $0$.\u003c/div\u003e"}},{"title":"Input","value":{"format":"HTML","content":"The first line consists a string in lowercase and a positive integer m. We use $len$ to denote the length of this string.\u003cbr\u003eEach of the following m lines consists a operation or a query.\u003cbr\u003e\u003cbr\u003eWe define a temporary variable $tmp$ and it is initially set to $0$.\u003cbr\u003eWe use the format \"1 c\" to describe the operation where $(c-\u0027a\u0027+tmp)~mod~26+\u0027a\u0027$ is the new character.\u003cbr\u003eWe use the format \"2 l r\" to describe the query where $(l-1+tmp)~mod~len+1$ and $(r-1+tmp)~mod~len+1$ are the indexes of substring $T$.\u003cbr\u003eWe guarantee that $1\\le (l-1+tmp)~mod~len+1\\le (r-1+tmp)~mod~len+1\\le len$ and after this query $tmp$ should be modified to the outcome.\u003cbr\u003e\u003cbr\u003eThe initial length of the string and $m$ are no more than $50000$."}},{"title":"Output","value":{"format":"HTML","content":"For each query, out the outcome in one line."}},{"title":"Sample","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003eaabda 6\r\n2 1 4\r\n1 a\r\n2 1 5\r\n1 b\r\n2 6 5\r\n2 7 4\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e1\r\n2\r\n3\r\n2\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n"}}]}