// https://szkopul.edu.pl/problemset/problem/E3eS485F0Qmr6RLduybh_e5b/site/?key=statement
// Sponsor
#include <algorithm>
#include <iostream>
#include <set>
#include <string>
#include <vector>
constexpr int sizik = 1000 * 1001;
int v[sizik];
int values[sizik];
int d[2 * sizik];
int na_przedziale(int o, int x, int y, int A, int B) {
if (A <= x && y <= B) return d[o];
if (B < x || y < A) return 0;
return std::max(na_przedziale(2 * o, x, (x + y) / 2, A, B), na_przedziale(2 * o + 1, (x + y) / 2 + 1, y, A, B));
}
void akt(int v, int a, int ll) {
v += ll - 1;
d[v] = a;
while (v > 1) {
v /= 2;
d[v] = std::max(d[2 * v], d[2 * v + 1]);
}
}
int main() {
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
std::cout.tie(0);
values[0] = 0;
int ll = 1;
while (ll < sizik)
ll *= 2;
int n;
std::cin >> n;
for (int i = 1; i <= n; i++) {
// double a;
// std::cin >> a;
// v[i] = a * 1000;
std::string s;
std::cin >> s;
std::string s1 = s.substr(0, 2), s2 = s.substr(3, 6);
int a = std::stoi(s1) * 1000 + std::stoi(s2);
v[i] = a;
}
int ans = 0;
for (int j = n; j >= 1; j--) {
int temp = na_przedziale(1, 1, ll, 0, v[j] - 1) + 1;
ans = std::max(ans, temp);
akt(v[j], temp, ll);
}
std::cout << ans * 100 << '\n';
return 0;
}