#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 createNode(val);
    if (val < root -> val)
        root -> left = insert(root -> left, val);
    else
        root -> right = insert(root -> right, val);
    return root;
}
Node bst_search (Node* root, int target) {
    if(root==NULL) return (Node*)NULL;
    if(root->val==target)
        return bst_search(root->left,target);
    else
        return bst_search(root->right,target);
}

void Free(Node*root) {
    if(root==NULL) return;
    Free(root->left);
    voidFreeTree(root->right);
    voidfreeTree(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");
            voidFreeTree(root);
            return 0;
        }
        root = insert(root, val);
        count++;
    }

    if (scanf("%d",&target) !=1) {
        printf("Invalid Input\n");
        voidFreeTree(root);
        return 0;
    }

    if (bst_search(root,target))
        printf("found\n");
    else
        printf("Not found\n");

    voidFreeTree(root);
    return 0;
}