#include<bits/stdc++.h>
using namespace std;

#define task "thd"

string S;
int n;

// Kiểm tra xem tất cả các xâu con độ dài k có đôi một phân biệt không
bool check(int k) {
    unordered_set<string> st;
    for (int i = 0; i <= n - k; i++) {
        string sub = S.substr(i, k);
        // Nếu đã xuất hiện xâu trùng -> k này không hợp lệ
        if (st.count(sub)) return false; 
        st.insert(sub);
    }
    return true;
}

int main() {
    ios_base::sync_with_stdio(0); 
    cin.tie(0);

    if (fopen(task".inp", "r")) {
        freopen(task".inp", "r", stdin);
        freopen(task".out", "w", stdout);
    }

    cin >> S;
    n = S.size();

    // Thử độ dài k từ 1 đến n, gặp k thỏa mãn đầu tiên là dừng
    for (int k = 1; k <= n; k++) {
        if (check(k)) {
            cout << k;
            return 0;
        }
    }

    return 0;
}