#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
typedef unsigned long long int ull;

const ull B=1e9+7;
const int MAXa=1000;
const int MAXs=1000000;

ull shash[MAXa][MAXs];

void makehash(string s)
{
	int sl=s.length();
	for(int i=0;i<sl;i++)shash[0][i]=s[i];
	
	for(int i=1;i<MAXa;i++)
	{
		for(int j=0;j<sl-i;j++)
		{
			shash[i][j]=shash[i-1][j]*B+s[i+j];
		}
	}
	return;
}

bool check(string s,string a)
{
	ull ahash=0;
	int al=a.length(),sl=s.length();
	for(int i=0;i<al;i++)ahash=ahash*B+a[i];
	
	for(int i=0;i<=sl-al;i++)if(shash[al-1][i]==ahash)return true;
	return false;
}

int main()
{
	string s;cin>>s;
	makehash(s);
	int n;cin>>n;
	for(int i=0;i<n;i++)
	{
		string a;cin>>a;
		cout<<check(s,a)<<endl;
	}
	return 0;
}