#include <iostream>
#include <vector>
using namespace std;

class Programmer; // Предварительное объявление

class Manager {
private:
    string name;
    vector<Programmer*> programmers;
public:
    Manager(string n) : name(n) {}
    void addProgrammer(Programmer* programmer);
    void listProgrammers();
    string getName() {
        return name;
    }
};

class Programmer {
private:
    string name;
    Manager* manager;
public:
    Programmer(string n) : name(n), manager(nullptr) {}
    void setManager(Manager* mgr) {
        manager = mgr;
    }
    void display() {
        cout << "Программист: " << name << ", Менеджер: " 
             << (manager ? manager->getName() : "Нет") << endl;
    }
};

void Manager::addProgrammer(Programmer* programmer) {
    programmers.push_back(programmer);
    programmer->setManager(this);
}

void Manager::listProgrammers() {
    for (auto programmer : programmers) {
        programmer->display();
    }
}

int main() {
    Manager mgr("Алексей");
    Programmer p1("Петр");
    Programmer p2("Анна");

    mgr.addProgrammer(&p1);
    mgr.addProgrammer(&p2);

    mgr.listProgrammers();
    return 0;
}
