#include <iostream>
#include <cstring>
using namespace std;
int nextx[1000010];
int getnext(string p){
fill(nextx,nextx+1000010,0);
int i = 0,j = -1;
nextx[0] = -1;
while (i < p.size()) {
if (j == -1 || p[i] == p[j]) {i++;j++;nextx[i] = j;}
else j = nextx[j];
}
}
int main(){
string s;
while (cin >> s){
if (s.size() == 1 && s[0] == '.') break;
getnext(s);
int n = s.size() - nextx[s.size()];
if (nextx[s.size()] % (s.size() - nextx[s.size()]) == 0) cout << s.size() / n << endl;
else cout << "1" << endl;
}
return 0;
}