#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 1e6 +5;
long long n,q,a[MaxN],b[MaxN];
struct Segtree_lazy
{
vector<long long> lazy;
void init(long long n)
{
if(n==0) return;
lazy.assign(4*n+1,-1);
}
void push_down(long long id,long long l ,long long r)
{
if(lazy[id]==-1) return;
long long mid = (l+r)>>1;
lazy[2*id]=lazy[id];
lazy[2*id+1]=lazy[id]+(mid+1-l);
lazy[id] = -1;
}
void update(long long id, long long l, long long r, long long u, long long v, long long x)
{
if(l>v||r<u)
{
return;
}
if(u<=l&&r<=v)
{
lazy[id]= x+(l-u);
return;
}
long long mid = (l+r)>>1;
push_down(id,l,r);
update(2 * id, l, mid, u, v, x);
update(2 * id + 1, mid + 1, r, u, v, x);
}
long long get(long long id, long long l, long long r, long long u)
{
if(l==r)
{
if(lazy[id]==-1)
{
return b[l];
}
else
{
return a[lazy[id]];
}
}
long long mid = (l+r)>>1;
push_down(id,l,r);
if(u<=mid)
{
return get(2*id,l,mid,u);
}
else
{
return get(2*id+1,mid+1,r,u);
}
}
void update(long long u, long long v, long long x)
{
update(1,1,n,u,v,x);
}
long long get(long long i)
{
return get(1,1,n,i);
}
};
Segtree_lazy st;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> q;
st.init(n);
for (long long i=1; i<=n; i++) cin >> a[i];
for (long long i=1; i<=n; i++) cin >> b[i];
while(q--)
{
long long num;
cin >> num;
if(num==1)
{
long long x,y,k;
cin >> x >> y >> k;
st.update(y,y+k-1,x);
}
else
{
long long i;
cin >> i;
cout << st.get(i) << "\n";
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgbG9uZyBsb25nIE1heE4gPSAxZTYgKzU7CmxvbmcgbG9uZyBuLHEsYVtNYXhOXSxiW01heE5dOwpzdHJ1Y3QgU2VndHJlZV9sYXp5CnsKICAgIHZlY3Rvcjxsb25nIGxvbmc+IGxhenk7CiAgICB2b2lkIGluaXQobG9uZyBsb25nIG4pCiAgICB7CiAgICAgICAgaWYobj09MCkgcmV0dXJuOwogICAgICAgIGxhenkuYXNzaWduKDQqbisxLC0xKTsKICAgIH0KICAgIHZvaWQgcHVzaF9kb3duKGxvbmcgbG9uZyBpZCxsb25nIGxvbmcgbCAsbG9uZyBsb25nIHIpCiAgICB7CiAgICAgICAgaWYobGF6eVtpZF09PS0xKSByZXR1cm47CiAgICAgICAgbG9uZyBsb25nIG1pZCA9IChsK3IpPj4xOwogICAgICAgIGxhenlbMippZF09bGF6eVtpZF07CiAgICAgICAgbGF6eVsyKmlkKzFdPWxhenlbaWRdKyhtaWQrMS1sKTsKICAgICAgICBsYXp5W2lkXSA9IC0xOwogICAgfQogICAgdm9pZCB1cGRhdGUobG9uZyBsb25nIGlkLCBsb25nIGxvbmcgbCwgbG9uZyBsb25nIHIsIGxvbmcgbG9uZyB1LCBsb25nIGxvbmcgdiwgbG9uZyBsb25nIHgpCiAgICB7CiAgICAgICAgaWYobD52fHxyPHUpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmKHU8PWwmJnI8PXYpCiAgICAgICAgewogICAgICAgICAgICBsYXp5W2lkXT0geCsobC11KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBsb25nIGxvbmcgbWlkID0gKGwrcik+PjE7CiAgICAgICAgcHVzaF9kb3duKGlkLGwscik7CiAgICAgICAgdXBkYXRlKDIgKiBpZCwgbCwgbWlkLCB1LCB2LCB4KTsKICAgICAgICB1cGRhdGUoMiAqIGlkICsgMSwgbWlkICsgMSwgciwgdSwgdiwgeCk7CiAgICB9CiAgICBsb25nIGxvbmcgZ2V0KGxvbmcgbG9uZyBpZCwgbG9uZyBsb25nIGwsIGxvbmcgbG9uZyByLCBsb25nIGxvbmcgdSkKICAgIHsKICAgICAgICBpZihsPT1yKQogICAgICAgIHsKICAgICAgICAgICAgaWYobGF6eVtpZF09PS0xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gYltsXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBhW2xhenlbaWRdXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBsb25nIGxvbmcgbWlkID0gKGwrcik+PjE7CiAgICAgICAgcHVzaF9kb3duKGlkLGwscik7CiAgICAgICAgaWYodTw9bWlkKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGdldCgyKmlkLGwsbWlkLHUpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gZ2V0KDIqaWQrMSxtaWQrMSxyLHUpOwogICAgICAgIH0KICAgIH0KICAgIHZvaWQgdXBkYXRlKGxvbmcgbG9uZyB1LCBsb25nIGxvbmcgdiwgbG9uZyBsb25nIHgpCiAgICB7CiAgICAgICAgdXBkYXRlKDEsMSxuLHUsdix4KTsKICAgIH0KICAgIGxvbmcgbG9uZyBnZXQobG9uZyBsb25nIGkpCiAgICB7CiAgICAgICAgcmV0dXJuIGdldCgxLDEsbixpKTsKICAgIH0KfTsKU2VndHJlZV9sYXp5IHN0OwppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgY2luID4+IG4gPj4gcTsKICAgIHN0LmluaXQobik7CiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8PW47IGkrKykgY2luID4+IGFbaV07CiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8PW47IGkrKykgY2luID4+IGJbaV07CiAgICB3aGlsZShxLS0pCiAgICB7CiAgICAgICAgbG9uZyBsb25nIG51bTsKICAgICAgICBjaW4gPj4gbnVtOwogICAgICAgIGlmKG51bT09MSkKICAgICAgICB7CiAgICAgICAgICAgIGxvbmcgbG9uZyB4LHksazsKICAgICAgICAgICAgY2luID4+IHggPj4geSA+PiBrOwogICAgICAgICAgICBzdC51cGRhdGUoeSx5K2stMSx4KTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgbG9uZyBsb25nIGk7CiAgICAgICAgICAgIGNpbiA+PiBpOwogICAgICAgICAgICBjb3V0IDw8IHN0LmdldChpKSA8PCAiXG4iOwogICAgICAgIH0KICAgIH0KfQo=