#include<bits/stdc++.h>
using namespace std;
struct node{
int op,x,y;
}b[201];
int main()
{
long long int a[1001],n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=m;i++)
cin>>b[i].op>>b[i].x>>b[i].y;
for(int i=m;i>=1;i--)
{
int op,x,y;
op=b[i].op; x=b[i].x; y=b[i].y;
if(op==1){
if(x=y)a[x]/2;
else a[x]-=a[y];
} else{
if(x==y)a[x]=sqrt(a[x]+0.5);
else a[x]/=a[y];
}
}
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
return 0;
}