// i wants to take ioi
//binhtinhtutinkhongcaycunhungmotkhikhongcontutinnualatuyetvong
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define nn "\n"
#define pi pair<int, int>
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define eb emplace_back
#define pb push_back
#define TASK " "
#define ms(a, x) memset(a, x, sizeof(a))
#define all(a) a.begin(), a.end()
#define All(a, n) a + 1, a + 1 + n
#define LOG 19
const int INF = 1e18;
const int mod = 1e9+7;
const int N = 1e5 + 5;
int MOD = 998244353;
int bit[200000];
struct node{
int kc, u, hk;
bool operator<(const node& other) const {
return kc > other.kc;
}
};
struct edge{
int v, w, h;
};
void nhap(){
}
void solve(){
string s; cin >> s;
int n = s.size();
for(int len = 1; len <= n; len++){
if(n % len == 0){
string x = s.substr(0, len);
string temp = "";
int t = n / len;
for(int i = 0; i < t; i++){
temp += x;
}
if(temp == s){
cout << x << nn;
return;
}
}
}
}
signed main() {
// freopen("npms.inp", "r", stdin);
// freopen("npms.out", "w", stdout);
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
nhap();
solve();
return 0;
}
Ly8gaSB3YW50cyB0byB0YWtlIGlvaQovL2Jpbmh0aW5odHV0aW5raG9uZ2NheWN1bmh1bmdtb3RraGlraG9uZ2NvbnR1dGlubnVhbGF0dXlldHZvbmcKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgbm4gIlxuIgojZGVmaW5lIHBpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBsYiBsb3dlcl9ib3VuZAojZGVmaW5lIHViIHVwcGVyX2JvdW5kCiNkZWZpbmUgZWIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgVEFTSyAiICIKCiNkZWZpbmUgbXMoYSwgeCkgbWVtc2V0KGEsIHgsIHNpemVvZihhKSkKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLCBhLmVuZCgpCiNkZWZpbmUgQWxsKGEsIG4pIGEgKyAxLCBhICsgMSArIG4KCiNkZWZpbmUgTE9HIDE5CgoKY29uc3QgaW50IElORiA9IDFlMTg7CmNvbnN0IGludCBtb2QgPSAxZTkrNzsKY29uc3QgaW50IE4gPSAxZTUgICsgNTsKaW50IE1PRCA9IDk5ODI0NDM1MzsKaW50IGJpdFsyMDAwMDBdOwpzdHJ1Y3Qgbm9kZXsKCWludCBrYywgdSwgaGs7Cglib29sIG9wZXJhdG9yPChjb25zdCBub2RlJiBvdGhlcikgY29uc3QgewogICAgICAgIHJldHVybiBrYyA+IG90aGVyLmtjOwogICAgfQp9OwpzdHJ1Y3QgZWRnZXsKCWludCB2LCB3LCBoOwp9OwoKdm9pZCBuaGFwKCl7CiAgICAKfQp2b2lkIHNvbHZlKCl7CglzdHJpbmcgczsgY2luID4+IHM7CglpbnQgbiA9IHMuc2l6ZSgpOwogICAgZm9yKGludCBsZW4gPSAxOyBsZW4gPD0gbjsgbGVuKyspewogICAgICAgIGlmKG4gJSBsZW4gPT0gMCl7CiAgICAgICAgICAgIHN0cmluZyB4ID0gcy5zdWJzdHIoMCwgbGVuKTsKICAgICAgICAgICAgc3RyaW5nIHRlbXAgPSAiIjsKICAgICAgICAgICAgaW50IHQgPSBuIC8gbGVuOwogICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgdDsgaSsrKXsKICAgICAgICAgICAgICAgIHRlbXAgKz0geDsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZih0ZW1wID09IHMpewogICAgICAgICAgICAgICAgY291dCA8PCB4IDw8IG5uOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CnNpZ25lZCBtYWluKCkgewogICAgLy8gZnJlb3BlbigibnBtcy5pbnAiLCAiciIsIHN0ZGluKTsKICAgIC8vIGZyZW9wZW4oIm5wbXMub3V0IiwgInciLCBzdGRvdXQpOwoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKCWNpbi50aWUoMCk7Cgljb3V0LnRpZSgwKTsKICAgIG5oYXAoKTsKICAgIHNvbHZlKCk7CglyZXR1cm4gMDsKCn0K