#include <iostream>
#include <string>
#include <vector>
using namespace std;


bool hasRightPair(const string & longString, size_t pos)
{
	int pairCounter=0;
	for (int i = pos;i< longString.size(); i++)
	{		
		if (longString[i] == '[')
			pairCounter++;
		if (longString[i] == ']')
			pairCounter--;
		if (!pairCounter)
			return true;
	}
	return !pairCounter;
}

bool hasLeftPair(const string & longString, size_t pos)
{
	int pairCounter = 0;
	for (int i = pos ;i>=0 ; i--)
	{
		if (longString[i] == '[')
			pairCounter++;
		if (longString[i] == ']')
			pairCounter--;
		if (!pairCounter)
			return true;
	}
	return !pairCounter;
}

void CompareFunc(const string & longString)
{
	for (size_t i = 0; i < longString.size(); i++)
	{
		if (longString[i] == '[')
		{
			if (!hasRightPair(longString, i))
				cout << i <<" ";// << " ";
		}
		if (longString[i] == ']')
		{
			if (!hasLeftPair(longString, i))
				cout << i << " ";// << " ";
		}
	}
	cout << endl;
}

int main()
{
	
	vector<string> example({
		"a[[[b]c",
		"a[[b]]c",
		"a[b]]]c",
		"abc[[ab]111",
		"[a][b]c]]][[c[c]["
	});
	for (string str : example)
		CompareFunc(str);
	return 0;
}