#include <stdio.h>
#include <stdlib.h>

typedef struct TreeNode {
    int val;
    struct TreeNode* left;
    struct TreeNode* right;
} TreeNode;

// Queue for level order tree construction
typedef struct Queue {
    TreeNode** data;
    int front;
    int rear;
    int size;
} Queue;

Queue* createQueue(int capacity) {
    Queue* q = (Queue*)malloc(sizeof(Queue));
    q->data = (TreeNode*)malloc(sizeof(TreeNode) * capacity);
    q->front = q->rear = 0;
    q->size = capacity;
    return q;
}

int isEmpty(Queue* q) {
    return q->front == q->rear;
}

void enqueue(Queue* q, TreeNode* node) {
    if (q->rear < q->size) {
        q->data[q->rear++] = node;
    }
}

TreeNode* dequeue(Queue* q) {
    if (!isEmpty(q)) {
        return q->data[q->front++];
    }
    return NULL;
}

TreeNode* newNode(int val) {
    if (val == -1) return NULL;
    TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));
    node->val = val;
    node->left = node->right = NULL;
    return node;
}

int isMirror(TreeNode* t1, TreeNode* t2) {
    if (t1 == NULL && t2 == NULL) return 1;
    if (t1 == NULL || t2 == NULL) return 0;
    return (t1->val == t2->val) &&
           isMirror(t1->left, t2->right) &&
           isMirror(t1->right, t2->left);
}

int main() {
    int n;
    if (scanf("%d", &n) != 1 || n < 1 || n > 10000) {
        printf("Invalid input\n");
        return 0;
    }

    int* arr = (int*)malloc(sizeof(int) * n);
    for (int i = 0; i < n; i++) {
        if (scanf("%d", &arr[i]) != 1) {
            printf("Invalid input\n");
            return 0;
        }
    }

    TreeNode* root = newNode(arr[0]);
    Queue* q = createQueue(n);
    enqueue(q, root);

    int i = 1;
    while (i < n && !isEmpty(q)) {
        TreeNode* curr = dequeue(q);
        if (curr != NULL) {
            curr->left = (i < n) ? newNode(arr[i++]) : NULL;
            if (curr->left) enqueue(q, curr->left);

            curr->right = (i < n) ? newNode(arr[i++]) : NULL;
            if (curr->right) enqueue(q, curr->right);
        }
    }

    if (isMirror(root, root))
        printf("Symmetric\n");
    else
        printf("Not Symmetric\n");

    return 0;
}