using System;

class OSOBA {
    public string nazwisko;
    public int    wiek;
    public OSOBA(string n, int w) {
        nazwisko = n;
        wiek     = w;
    }
}

struct Osoba {
    public string nazwisko;
    public int    wiek;
    public Osoba(string n, int w) {
        nazwisko = n;
        wiek     = w;
    }
}

class StruClass {
    public static void Main() {
        OSOBA kJanek = new OSOBA("Janek",18);
        OSOBA kPiotr = new OSOBA("Piotr",19);

        Console.WriteLine("Po utworzeniu obiektow " +
            "klasy:\n" +
            "Janek: " + kJanek.nazwisko + " " +
            kJanek.wiek + " : " + "Piotr: " +
            kPiotr.nazwisko + " " + kPiotr.wiek);

        kJanek = kPiotr;
        kPiotr.wiek = 29;

        Console.WriteLine("Po przypisaniu i zmianie " +
            "wieku Piotra:\n" +
            "Janek: " + kJanek.nazwisko + " " +
            kJanek.wiek + " : " + "Piotr: " +
            kPiotr.nazwisko + " " + kPiotr.wiek + "\n");

        Osoba sJanek = new Osoba("Janek",18);
        Osoba sPiotr = new Osoba("Piotr",19);

        Console.WriteLine("Po utworzeniu obiektow " +
            "struktury:\n" +
            "Janek: " + sJanek.nazwisko + " " +
            sJanek.wiek + " : " + "Piotr: " +
            sPiotr.nazwisko + " " + sPiotr.wiek);

        sJanek = sPiotr;
        sPiotr.wiek = 29;

        Console.WriteLine("Po przypisaniu i zmianie " +
            "wieku Piotra:\n" +
            "Janek: " + sJanek.nazwisko + " " +
            sJanek.wiek + " : " + "Piotr: " +
            sPiotr.nazwisko + " " + sPiotr.wiek + "\n");
    }
}