#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct student{
    int n;
    char name[100];
}student;
student*hashTable[TABLE_SIZE];
int hashFunction(int id){
    return id % TABLE_SIZE;
}
void insert(int id,char*name){
    int index=hashFunction(id);
    while(hashTable[index]!=NULL && hashTable[index]->id!=-1){
        if(hashTable[index]->id==id){
            printf("No\n");
            return;
        }
        index=(index+1)%TABLE_SIZE;
    }
    hashTable[index]=(student*)malloc(sizeof(student));
    hashTable[index]->id=id;
    strcpy(hashTable[index]->name,name);
    printf("Yes\n");
}
void search(int id){
    int index=hashFunction(id);
    while(hashTable[index]!=NULL && hashTable[index]->id!=-1){
        if(hashTable[index]->id==id){
            printf("%s\n",hashTable[index]->name);
            return;
        }
        index=(index+1)%TABLE_SIZE;
    }
    printf("No\n");
}
void update(int id,char*name){
    int index=hashFunction(id);
    while(hashTable[index]!=NULL && hashTable[index]->id!=-1){
        if(hashTable[index]->id==id){
            printf("%s\n",hashTable[index]->name,name);
            printf("Yes\n");
            return;
        }
        index=(index+1)%TABLE_SIZE;
    }
    printf("No\n");
}
void deleteRecord(int id){
    int index=hashFunction(id);
    while(hashTable[index]!=NULL && hashTable[index]->id!=-1){
        if(hashTable[index]->id==id){
            hashTable[index]->id=-1;
            printf("Yes\n");
            return;
        }
        index=(index+1)%TABLE_SIZE;
    }
    printf("No\n");
}
int main(){
    for(int i=0;i<TABLE_SIZE;i++){
        hashTable[i]=NULL;
    }
    int q;
    scanf("%d",&q);
    for(int i=0;i<q;i++){
        int op;
        scanf("%d",&op);
        if(op==1){
            int id;
            char name[100];
            scanf("%d %s",&id,name);
            insert(id,name);
        }else if(op==2){
            int id;
            char name[100];
            scanf("%d %s",&id,name);
            update(id,name);
        }else if(op==3){
            int id;
            char name[100];
            scanf("%d",&id);
            deleteRecord(id);
        }else if(op==4){
            int id;
            scanf("%d",&id);
            search(id);
            
        }
    }
    return 0;
}