/*
* Problem :: 1244 / 스위치 켜고 끄기
*
* Kind :: Simulation
*
* Insight
* - 구현 문제인데 딱히 인사이트가 필요한 문제는 아닌 것 같다
* 문제 설명을 잘 읽고 시키는 대로 잘하자
*
* Point
* - 남학생은 for 문을 활용해서
* 여학생은 while 문을 활용했다
* + 남학생을 while 문, 여학생을 for 문으로 구현해도 상관없다
* for 문, while 문 문법 배웠을 때 응용문제로 내면 딱 좋을 듯 하다
*
* - 스위치가 켜졌다면 true, 꺼졌다면 false 로 생각했다
* + 켜진 스위치를 끄고, 꺼진 스위치를 끌때
* 굳이 각 케이스별로 if 문을 쓰고 싶지 않아서
* ^= 로 다루어주었다
* # true ^ true = false (켜진 스위치 끄기)
* false ^ true = true (꺼진 스위치 켜기)
*
* - 출력 조건(한 줄에 20개씩 출력)을 빠뜨리지 말자
*/
//
// BOJ
// ver.C++
//
// Created by GGlifer
//
// Open Source
#include <iostream>
using namespace std;
#define endl '\n'
// Set up : Global Variables
/* None */
// Set up : Functions Declaration
/* None */
int main()
{
// Set up : I/O
ios::sync_with_stdio(false);
cin.tie(nullptr);
// Set up : Input
int N; cin >> N;
bool S[N+1];
for (int i=1; i<=N; i++)
cin >> S[i];
// Process
int M; cin >> M;
for (int i=0; i<M; i++) {
int type, n;
cin >> type >> n;
if (type == 1) { /* 남학생 */
for (int j=n; j<=N; j+=n) {
S[j] ^= true;
}
}
if (type == 2) { /* 여학생 */
int j = 0;
while (n-j >= 1 && n+j <= N && S[n-j] == S[n+j]) {
S[n-j] = S[n+j] ^= true;
j++;
}
}
}
// Control : Output
for (int i=1; i<=N; i++) {
cout << ((S[i]) ? 1 : 0);
/* 출력 조건 : 한 줄에 20개씩 출력 */
cout << ((i%20) ? ' ' : endl);
}
}
// Helper Functions
/* None */