#include <iostream>
using namespace std;

const int MAXN = 100010;  // 假设一个足够大的数组大小,可根据实际情况调整

int main() {
    int n, m;
    cin >> n >> m;
    int a[MAXN];  // 用于存储队列元素,相当于模拟整个队列
    int pos[MAXN];  // 记录每个元素当前在队列中的位置索引

    // 初始化队列元素和位置索引
    for (int i = 1; i <= n; i++) {
        a[i] = i;
        pos[i] = i;
    }

    // 处理每条指令
    for (int i = 0; i < m; i++) {
        int x;
        cin >> x;
        int curPos = pos[x];
        // 将编号为x的元素移到最前面,通过交换元素位置来模拟
        for (int j = curPos; j > 1; j--) {
            swap(a[j], a[j - 1]);
            swap(pos[a[j]], pos[a[j - 1]]);
        }
    }

    // 输出最终的队列
    for (int i = 1; i <= n; i++) {
        cout << a[i] << " ";
    }
    cout << endl;
    return 0;
}
/**************************************************************
	Problem: 1527
	User: zhuangsongyu
	Language: C++
	Result: Time Limit Exceed
****************************************************************/