#include <iostream>
using namespace std;

//Узлы являются объектами класса TreeNode
template<class T>
class TreeNode{
protected:
	TreeNode  *left;
	TreeNode  *right;
	T key;
	int priority;
public:
	TreeNode(T);
	virtual ~TreeNode(void);
};

//Шаблон класса для представления дерамиды
template<class T> class Deramid{
private:
	TreeNode<T> *root;
	int (*cmp)(T, T);
	void _remove(T, TreeNode<T> * &);
	void _inorder(TreeNode<T> *, void (*)(T));
public:
	Deramid(int(*) (T, T) );
	~Deramid(void);
	int isEmpty(void);
	T find(T);
	void insert(T);
	void remove(T);
};

int main() {
	// your code goes here
	return 0;
}