#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
    int val;
    struct Node *left, *right;
} Node;
Node* createNode(int val) {
      Node* newNode = ( Node*)malloc(sizeof(Node));
     if (newNode == NULL){
         fprintf(stderr,"Memory allocation failed\n'");
         exit (EXIT_FAILURE);
     }
     }
    new Node -> val= val;
    newNode -> left= newNode -> right = NULL;
    return newNode;

Node* insert( Node* root, int val) {
    if (root == NULL) return create  Node(val);
    if (val < root -> val)
        root -> left= insert(root -> left, val);
    else
        root -> right = insert(root -> right, val);
    return root;
}
int *bsearch(Node* root, int target) {
    if (root == NULL) return  NULL
    if (root -> val == target)
        return bsearch(root -> left, target);
    else
        return bsearch(root -> right, target);
}
void Free(Node* root) {
    if (root == NULL) return;
    Free(root -> left);
    FreeTree(root -> right);
    freeTree (root);
}

int main() {
    int n, target;
    if (scanf("%d", &n) !=1) {
        printf("Invalid Input\n");
        return 0;
    }

    Node* root= NULL;
    int count = 0, val;
    for (int i = 0; i < n; i++) {
        if (scanf("%d", &val) != 1) {
            printf("Invalid Input\n");
            FreeTree(root);
            return 0;
        }
        root = insert(root, val);
        count++;
    }

    if (scanf("%d", &target) != 1) {
        printf("Invalid Input\n");
        FreeTree(root);
        return 0;
    }

    if (bsearch(root,target))
        printf("found\n");
    else
        printf("Not found\n");

    FreeTree(root);
    return 0;
}