#include <stdio.h>
#include <stdlib.h>

struct Node
{
    int value;
    struct Node *left;
    struct Node *right;
};

struct Node *new_node(int v)
{
    struct Node *n = malloc(sizeof(*n));
    n->value = v;
    n->left = NULL;
    n->right = NULL;
    return n;
}

struct Node *add_node(struct Node *n, int v)
{
    if (n == NULL)
    {
        return new_node(v);
    }
    else
    {
        if (v < n->value)
        {
            n->left = add_node(n->left, v);
        }
        else
        {
            n->right = add_node(n->right, v);
        }
        
        return n; 
    }
}

int exists_node(struct Node *n, int v)
{
    if (n == NULL)
    {
        return 0;
    }
    else
    {
        if (v < n->value)
        {
            return exists_node(n->left, v);
        }
        else if (n->value < v)
        {
            return exists_node(n->right, v);
        }
        else
        {
            return 1;
        }
    }
}

int min_node(struct Node *n)
{
    if (n->left == NULL)
    {
        return n->value;
    }
    else
    {
        return min_node(n->left);
    }
}

int main() {
    int i;
    int v;
    int n;
    FILE *f;
    struct Node *t;
    
    t = NULL;
    f = fopen("input.txt", "r");
    fscanf(f, "%d", &n);
    for (i = 0; i < n; i++)
    {
        fscanf(f, "%d", &v);
        t = add_node(t, v);
    }    
    fclose(f);
    
    printf("> ");
    scanf("%d", &v);
    
    if (exists_node(t, v))
    {
        printf("yes\n");
    }
    else
    {
        printf("no\n");
    }
    
    if (t != NULL)
    {
        printf("%d\n", min_node(t));
    }

    return 0;
}