#include
#include
#define MAX 1000000005
int size, queries, temp, count, idx, weight;
struct node{
int key;
int count;
int smaller;
struct node *left, *right;
};
void inorder(struct node *root){
if(root!=NULL){
inorder(root->left);
printf("%d(%d) --> %d\n", root->key, root->count, root->smaller);
inorder(root->right);
}
}
void modifyWeight(struct node *root){
if(root!=NULL){
modifyWeight(root->right);
root->smaller = size-(weight++);
modifyWeight(root->left);
}
}
struct node *newNode(int item){
struct node *temp = (struct node*)malloc(sizeof(struct node));
temp->key = item;
temp->left = temp->right = NULL;
temp->count = 1;
return temp;
}
struct node* insert(struct node* node, int key){
if(node==NULL){
return newNode(key);
}
if(key < node->key){
node->left = insert(node->left, key);
}else if(key > node->key){
node->right = insert(node->right, key);
}else if(key == node->key){
(node->count)++;
}
return node;
}
int findWeight(struct node *root, int key){
//printf("Node now %d\n", root->key);
if(root==NULL){
return -1;
}
if(root->key<=key){
return root->smaller;
}
if(root->key>key){
return findWeight(root->left, key);
}
}
int main(){
scanf("%d %d",&size ,&queries);
struct node *root = NULL;
root = insert(root, MAX);
for(int i=0;i