编程题
### 问题描述
小秋很喜欢在某平台上看一些商家推荐。
一天小秋看到有一家商铺的好评非常多,想去体验一下,于是他高高兴兴地去了那家商铺。不出意外的话还是出意外了。那家商铺对小秋来说简直是噩梦,和平台上的好评完全相反。小秋认为这个商家的评论有问题,很可能是通过某种刷评论软件刷的。
在反复查看商家的评论后,小秋发现,在后面的评论中,经常出现和前面一模一样的评论。
因此,小秋做了如下推断:假设把商家现在的评论看成一个只包含小写字母的字符串 $s$,$s$ 是通过一个空字符串 $t$,经过若干次下列操作得到的:
1. 在 $t$ 末尾添加任意一个小写字母;
2. 在 $t$ 末尾添加 $t$ 任意长度的前缀;
小秋现在想知道,对于一个商家的评论 $s$,由一个空字符串得到最少需要多少次上述操作。
如果计算得到的操作数量过小,那么商家的评论肯定就是刷的,就可以去举报了。你只需要帮小秋求出这个最小操作数量。
### 输入格式
输入仅一行,一个只包含小写字母的字符串 $s$。
### 输出格式
输出仅一行,一个整数表示由空字符串得到 $s$ 的最少操作数量。
### 样例输入
```
ababa
```
### 样例输出
```
4
```
### 说明
* 第 $1$ 次操作,在字符串末尾添加一个字符 $a$,得到字符串 $\text{a}$;
* 第 $2$ 次操作,在字符串末尾添加一个字符 $b$,得到字符串 $\text{ab}$;
* 第 $3$ 次操作,在字符串末尾添加前缀 $\text{ab}$,得到字符串 $\text{abab}$;
* 第 $4$ 次操作,在字符串末尾添加一个字符 $a$,得到字符串 $\text{ababa}$。
### 评测数据规模
对于 $20$% 的评测数据,$1 \leq |s| \leq 10^3$;
对于 $40$% 的评测数据,$1\leq |s| \leq 10^5$;
对于 $100$% 的评测数据,$1 \leq |s| \leq 10^6$。