#include <iostream>
#include <queue>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    // 用vector来模拟整个队列的顺序,初始化为1到n
    vector<int> all_queue(n);
    for (int i = 0; i < n; ++i) {
        all_queue[i] = i + 1;
    }
    // 用一个队列来辅助操作,初始把1到n依次入队
    queue<int> operate_queue;
    for (int num : all_queue) {
        operate_queue.push(num);
    }

    // 处理每一条指令
    for (int i = 0; i < m; ++i) {
        int x;
        cin >> x;
        // 先在vector中找到x对应的位置索引
        auto it = find(all_queue.begin(), all_queue.end(), x);
        int index = it - all_queue.begin();
        // 临时存储要移到前面的元素后面的元素
        vector<int> temp;
        for (int j = 0; j < index; ++j) {
            temp.push_back(all_queue[j]);
        }
        // 移除原队列中这些元素
        all_queue.erase(all_queue.begin(), all_queue.begin() + index);
        // 将原队列中剩余元素依次入队,模拟重新构建队列
        for (int num : all_queue) {
            operate_queue.push(num);
        }
        // 把要移到前面的元素入队
        operate_queue.push(x);
        // 再把之前暂存的元素依次入队
        for (int num : temp) {
            operate_queue.push(num);
        }
        // 用新的顺序更新vector表示的队列
        int size = operate_queue.size();
        for (int j = 0; j < size; ++j) {
            all_queue[j] = operate_queue.front();
            operate_queue.pop();
        }
    }

    // 输出最终队列
    for (int num : all_queue) {
        cout << num << " ";
    }
    cout << endl;
    return 0;
}
/**************************************************************
	Problem: 1527
	User: zhuangsongyu
	Language: C++
	Result: Runtime Error
****************************************************************/