#include <stdio.h>
#include <stdlib.h>
void down(int *p,int n){
int i,j,max,temp;
for(i=0;i<n-1;i++){
max=i;
for(j=i+1;j<n;j++){
if(p[max]<p[j]){
max=j;
}
}
if(max!=i){
temp=p[i];
p[i]=p[max];
p[max]=temp;
}
}
}
void up(int *p,int b)
{
int i,j;
int temp,min;
for(i=0;i<b-1;i++)
{
min=i;
for(j=i+1;j<b;j++)
{
if(p[j]<p[min])
min=j;
}
if(min!=i)
{
temp=p[i];
p[i]=p[min];
p[min]=temp;
}
}
}
int main()
{
int m,n;
int i;
int a,b;
scanf("%d %d",&n,&m);
int x[n];
for(i=0;i<n;i++)
{
scanf("%d",&x[i]);
}
for(i=0;i<m;i++)
{
scanf("%d%d",&a,&b);
if(a==1)
{
up(&x,b);
}
else if(a==2)
{
down(&x,b);
}
}
for(i=0;i<n;i++)
{
printf("%d ",x[i]);
}
}