#include <iostream>
using namespace std;

int T = 0, N, K, M;
int main()
{
	cin >> N; //вводим длину массива
	int *A = new int[N]; //создаем динамический целочисленный массив длины N
	for (int i = 0; i < N; i++)
		cin >> A[i]; //вводим элементы массива
	for (K = 1; K < N; K++) //при данном периоде K значение M = [N/K], округленное вверх
	{
		bool good = true;//ставим изначально временный флаг как true
		for (int i = 0; i < K && good; i++)
			for (int j = i + K; j < N && good; j += K)
				if (A[i] != A[j]) //период последовательности не может быть равен K
					good = false;
		if (good) //K является наименьшим периодом последовательности
		{
			T = 1;
			break;//нет надобности больше перебирать возможные периоды, так как он уже нашелся
		}
	}
	cout << T;
	return 0;
}