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

const int COL = 2;

bool compare_vectors(const std::vector<int>& lhs, const std::vector<int>& rhs)
{
    return rhs.back() < lhs.back();
}

int main()
{
    std::vector<std::vector<int>> Arr = {{1, 5},  {2, 8}, {3, 3}};

    std::sort(Arr.begin(), Arr.end(), compare_vectors);


// IDEone still has an outdated compiler, no range loops
//    for(auto& row: Arr)
//    {
//        for(auto& n: row)
//            std::cout << n << ' ';
//        std::cout << '\n';
//    }
    for(std::size_t row = 0; row < Arr.size(); ++row)
    {
        for(std::size_t col = 0; col < Arr[row].size(); ++col)
            std::cout << Arr[row][col] << ' ';
        std::cout << '\n';
    }
}
