#include <iostream>
#include <set>
#include <string>
using namespace std;
class Athlete {
private:
    string name;
    double time; 
public:
    Athlete() : name(""), time(0) {}
    Athlete(string n, double t) {
        name = n;
        time = t;
    }
    string getName() const {
        return name;
    }

    double getTime() const {
        return time;
    }

    bool operator<(const Athlete& other) const {
        if (time == other.time)
            return name < other.name;
        return time < other.time;
    }
};
Athlete findFastest(const set<Athlete>& athletes) {
    return *athletes.begin();
}
void printResults(const set<pair<int, Athlete>>& results,
                  int startPlace,
                  int endPlace) {
 

    for (const auto& p : results) {
        if (p.first >= startPlace && p.first <= endPlace) {
            cout << p.first<<endl<< p.second.getName()<<endl<< p.second.getTime()
                 ;
        }
    }
}
int main() {
    set<Athlete> athletes;

    athletes.insert(Athlete("Іван", 11.2));
    athletes.insert(Athlete("Петро", 10.8));
    athletes.insert(Athlete("Олег", 12.1));
    athletes.insert(Athlete("Максим", 10.5));


    for (const auto& athlete : athletes) {
        cout << athlete.getName()
             << " - " << athlete.getTime()
             << " с\n";
    }

    Athlete fastest = findFastest(athletes);

    cout << fastest.getName()
         << " (" << fastest.getTime()
         << " с)\n";

    set<pair<int, Athlete>> results;

    results.insert({1, Athlete("Максим", 10.5)});
    results.insert({2, Athlete("Петро", 10.8)});
    results.insert({3, Athlete("Іван", 11.2)});
    results.insert({4, Athlete("Олег", 12.1)});
    printResults(results, 1, 100);

    int startPlace, endPlace;

                                         
    cin >> startPlace;

    cin >> endPlace;

    printResults(results, startPlace, endPlace);

    return 0;
}