#include <iostream>
#include <algorithm>
#include <vector>
#include <string>

using namespace std;

class Area {
public:
    Area() {}
    Area(int _h, int _w) {
        h = _h;
        w = _w;
    }

    bool operator<(const Area& area) const {
        if (h == area.h) {
            return w < area.w;
        }
        return h < area.h;
    }

    bool area_equal(Area area) {
        return h == area.h && w == area.w;
    }

    int h, w;
};

bool check(Area a1, Area a2, Area a3)
{
    if (a1.h == a2.h && a2.w == a3.h && a3.w == a1.w) {
        return true;
    }
    if (a1.w == a2.h && a2.w == a3.h && a3.w == a1.h) {
        return true;
    }
    if (a1.h == a2.w && a2.h == a3.h && a3.w == a1.w) {
        return true;
    }
    if (a1.w == a2.w && a2.h == a3.h && a3.w == a1.h) {
        return true;
    }
    if (a1.h == a2.h && a2.w == a3.w && a3.h == a1.w) {
        return true;
    }
    if (a1.w == a2.h && a2.w == a3.w && a3.h == a1.h) {
        return true;
    }
    if (a1.h == a2.w && a2.h == a3.w && a3.h == a1.w) {
        return true;
    }
    if (a1.w == a2.w && a2.h == a3.w && a3.h == a1.h) {
        return true;
    }
    return false;
}

string solve(vector<Area> vec)
{
    bool flag = vec[0].area_equal(vec[1]) & vec[2].area_equal(vec[3]) & vec[4].area_equal(vec[5]);
    if (!flag) {
        return "no";
    }

    if (check(vec[0], vec[2], vec[4])){
        return "yes";
    }

    return "no";
}

int main()
{
    int h, w;
    vector<Area> vec;
    for (int i = 0; i < 6; ++i) {
        cin >> h >> w;
        if (h > w) {
            swap(h, w);
        }
        vec.push_back(Area(h, w));
    }
    sort(vec.begin(), vec.end());

    cout << solve(vec) << endl;

    return 0;
}