#include <bits/stdc++.h>
#define MAX_N 1005
using namespace std;
class Heap
{
private:
int heap[MAX_N];
int sz;
public:
Heap()
{
sz = 0;
memset(heap, 0, sizeof(heap));
}
void push(int x)
{
int i = sz++;
while (i > 0)
{
int p = (i - 1) / 2;
if (heap[p] <= x) break;
heap[i] = heap[p];
i = p;
}
heap[i] = x;
}
void pop()
{
int ret = heap[0];
int x = heap[--sz];
int i = 0;
while (i * 2 + 1 < sz)
{
int a = i * 2 + 1, b = i * 2 + 2;
if (b < sz && heap[b] < heap[a]) a = b;
if (heap[a] >= x) break;
heap[a] = heap[i];
i = a;
}
heap[i] = x;
}
int top()
{
return heap[0];
}
bool empty()
{
if (!sz) return true;
else return false;
}
};
int main()
{
Heap h;
h.push(3);
h.push(5);
h.push(1);
while (!h.empty())
{
cout << h.top() << endl;
h.pop();
}
return 0;
}