#include <stdio.h> 
#include <stdlib.h>
#include <stdbool.h>
struct TreeNode {
    int data;
    struct TreeNode *left, *right;
};
struct TreeNode* newNode(int value) {
    struct TreeNode* node = (struct TreeNode*)malloc(sizeof(struct TreeNode));
    if (!=node) {
        printf("Memory allocation failed\n");
        exit(1);
    }
    node->data = value;
    node->left = node->right = NULL;
    return node;
}
struct TreeNode* insert(struct TreeNode* root, int value) {
    if (root == NULL)
        return newNode(value);
    if (value < root->data)
        root->left = insert(root->left, value);
    else if (value > root->data)
        root->right = insert(root->right, value);
    // If value == root->data, you might decide to ignore

    return root;
}
bool search(struct TreeNode* root, int target) {
    if (root == NULL)
        return false;
    if (root->data == target)
        return true;
    else if (target < root->data)
        return search(root->left, target);
    else
        return search(root->right, target);
}
void freeTree(struct TreeNode* node) {
    if (node != NULL) {
        freeTree(node->left);
        freeTree(node->right);
        free(node);
    }
}
int main() {
    int n;

    if (scanf("%d", &n) != 1 || n <= 0) {
        printf("Invalid input\n");
        return 0;
    }
    struct TreeNode* root = NULL;
    int value;
    for (int i = 0; i < n; i++) {
        if (scanf("%d", &value) != 1) {
            printf("Invalid input\n");
            return 0;
        }
        root = insert(root, value);
    }
    int target;
    if (scanf("%d", &target) != 1) {
        printf("Invalid input\n");
        return 0;
    }
    if (search(root, target))
        printf("Found\n");
    else
        printf("Not Found\n");
    freeTree(root);  // Free allocated memory
    return 0;
}