#include<bits/stdc++.h>
#define ll long long
#define endl "\n"
#define mii map<int,int>
#define mll map<ll,ll>
#define pii pair<int,int>
#define pli pair<ll,int>
#define pll pair<ll,ll>
#define inf 1000000000000000000LL
#define fi first
#define se second
using namespace std;
int n, m, a[100005], b[100005], st[400005], lazy[400005], rpos;
void fix(int id, int val) {
st[id]=val;
lazy[id]=val;
return;
}
void down(int id, int l, int mid) {
if (lazy[id]!=0) {
fix(id*2,lazy[id]);
fix(id*2+1,lazy[id]+mid-l+1);
lazy[id]=0;
}
return;
}
void upd(int id, int l, int r, int u, int v, int le) {
if (l>v || r<u) return;
if (l>=u && r<=v) {
fix(id,le+l-u);
return;
}
int mid=(l+r)>>1;
down(id,l,mid);
upd(id*2,l,mid,u,v,le);
upd(id*2+1,mid+1,r,u,v,le);
return;
}
void gpos(int id, int l, int r, int pos) {
if (l>pos || r<pos) return;
if (l==r) {
rpos=st[id];
return;
}
int mid=(l+r)>>1;
down(id,l,mid);
gpos(id*2,l,mid,pos);
gpos(id*2+1,mid+1,r,pos);
return;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
cin>>n>>m;
for (int i=1; i<=n; i++) {
cin>>a[i];
}
for (int i=1; i<=n; i++) {
cin>>b[i];
}
while (m--) {
int t; cin>>t;
if (t==1) {
int x, y, k;
cin>>x>>y>>k;
upd(1,1,n,y,y+k-1,x);
}
else {
int x; cin>>x;
gpos(1,1,n,x);
if (rpos==0) cout<<b[x];
else cout<<a[rpos];
cout<<endl;
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSBtaWkgbWFwPGludCxpbnQ+CiNkZWZpbmUgbWxsIG1hcDxsbCxsbD4KI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHBsaSBwYWlyPGxsLGludD4KI2RlZmluZSBwbGwgcGFpcjxsbCxsbD4KI2RlZmluZSBpbmYgMTAwMDAwMDAwMDAwMDAwMDAwMExMCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG4sIG0sIGFbMTAwMDA1XSwgYlsxMDAwMDVdLCBzdFs0MDAwMDVdLCBsYXp5WzQwMDAwNV0sIHJwb3M7CnZvaWQgZml4KGludCBpZCwgaW50IHZhbCkgewogICAgc3RbaWRdPXZhbDsKICAgIGxhenlbaWRdPXZhbDsKICAgIHJldHVybjsKfQp2b2lkIGRvd24oaW50IGlkLCBpbnQgbCwgaW50IG1pZCkgewogICAgaWYgKGxhenlbaWRdIT0wKSB7CiAgICAgICAgZml4KGlkKjIsbGF6eVtpZF0pOwogICAgICAgIGZpeChpZCoyKzEsbGF6eVtpZF0rbWlkLWwrMSk7CiAgICAgICAgbGF6eVtpZF09MDsKICAgIH0KICAgIHJldHVybjsKfQp2b2lkIHVwZChpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2LCBpbnQgbGUpIHsKICAgIGlmIChsPnYgfHwgcjx1KSByZXR1cm47CiAgICBpZiAobD49dSAmJiByPD12KSB7CiAgICAgICAgZml4KGlkLGxlK2wtdSk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaW50IG1pZD0obCtyKT4+MTsKICAgIGRvd24oaWQsbCxtaWQpOwogICAgdXBkKGlkKjIsbCxtaWQsdSx2LGxlKTsKICAgIHVwZChpZCoyKzEsbWlkKzEscix1LHYsbGUpOwogICAgcmV0dXJuOwp9CnZvaWQgZ3BvcyhpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHBvcykgewogICAgaWYgKGw+cG9zIHx8IHI8cG9zKSByZXR1cm47CiAgICBpZiAobD09cikgewogICAgICAgIHJwb3M9c3RbaWRdOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBtaWQ9KGwrcik+PjE7CiAgICBkb3duKGlkLGwsbWlkKTsKICAgIGdwb3MoaWQqMixsLG1pZCxwb3MpOwogICAgZ3BvcyhpZCoyKzEsbWlkKzEscixwb3MpOwogICAgcmV0dXJuOwp9CmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOyBjb3V0LnRpZShudWxscHRyKTsKICAgIGNpbj4+bj4+bTsKICAgIGZvciAoaW50IGk9MTsgaTw9bjsgaSsrKSB7CiAgICAgICAgY2luPj5hW2ldOwogICAgfQogICAgZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspIHsKICAgICAgICBjaW4+PmJbaV07CiAgICB9CiAgICB3aGlsZSAobS0tKSB7CiAgICAgICAgaW50IHQ7IGNpbj4+dDsKICAgICAgICBpZiAodD09MSkgewogICAgICAgICAgICBpbnQgeCwgeSwgazsKICAgICAgICAgICAgY2luPj54Pj55Pj5rOwogICAgICAgICAgICB1cGQoMSwxLG4seSx5K2stMSx4KTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGludCB4OyBjaW4+Png7CiAgICAgICAgICAgIGdwb3MoMSwxLG4seCk7CiAgICAgICAgICAgIGlmIChycG9zPT0wKSBjb3V0PDxiW3hdOwogICAgICAgICAgICBlbHNlIGNvdXQ8PGFbcnBvc107CiAgICAgICAgICAgIGNvdXQ8PGVuZGw7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0K