#include <algorithm>
#include <iostream>
#include <numeric>
#include <vector>
#include <tuple>

using namespace std;

void my_unique(const vector<unsigned>& table, vector<size_t>& index_table) {
  vector<size_t> temp = {index_table.front()}; //Mozna bez tego, ale chyba tak latwiej zrozumiec
  for(size_t i = 1; i < index_table.size(); ++i) {
	if(table[index_table[i]] != table[index_table[i-1]])
	 temp.push_back(index_table[i]);
   }
  index_table = move(temp);
 }

int main() {
  vector<unsigned> table = {3, 3, 2, 3, 1, 1, 1, 1, 1};
  vector<size_t> index_table(table.size());
  iota(begin(index_table), end(index_table), 0);
  sort(begin(index_table), end(index_table), [&](size_t i, size_t j)
											  {if(table[i] == table[j]) return i < j;
											   return table[i] < table[j];});
  my_unique(table, index_table);
  unsigned least_index = table.size(), largest_gap = 0;
  tuple<size_t, size_t> answer(table.size(), table.size());
  for(const auto& x : index_table) {
	least_index = (least_index < x) ? least_index : x;
	if(least_index < x && largest_gap < x - least_index) {
	  largest_gap = x - least_index;
	  answer = make_tuple(least_index, x);
	 }
   }
  if(answer == make_tuple(table.size(), table.size()))
   cout << "Brak.\n";
  else
   cout << get<0>(answer) << ' ' << get<1>(answer) << '\n';
 }
