#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);
     }
     }
    newNode -> 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, int target))
        printf("found\n");
    else
        printf("Not found\n");

    freeTree(root);
    return 0;
}