#include <string>
using namespace std;

struct zapos{
	long long int oib;
	int dan,mj,god;
	string ime,pr,mjesto;
	string horo;
	string horo2;

};

struct list{
	zapos br[10000];
	int k;
};
typedef list lista;
typedef int element;

element EndL(lista *L){
	return L->k;
}

element FirstL(lista *L){
	if(L->k ==0){
		cout << "Lista je prazna.";
		return EndL(L);
	}
	return 0;
}

element NextL(element p,lista *L){
	if(p>= L->k)
		return -1;
	else 
		return p+1;
}

element PreviousL(element p,lista *L){
	if(p <= L->k && p>0)
		return p-1;
	else 
		return -1;
}

element LocateL(zapos zap,lista *L){
	for (int i=0;i<10000;i++){
		if(L->br[i].oib == zap.oib)
			return i;
	}
	return EndL(L);
}

bool InsertL(zapos novi,element p,lista *L){
	if(L->k == 10000)
		return false;
	for (int i=L->k;i>p;i--)
		L->br[i] = L->br[i-1];
	L->br[p] = novi;
	L->k++;
	return true;
}

bool DeleteL(element p,lista *L){
	if(L->k == 0 || p>=L->k)
		return false;
	L->k--;
	for(int i=p;i<L->k;i++)
		L->br[i] = L->br[i+1];
	return true;
}

zapos RetrieveL(element p,lista *L){
	return L->br[p];
}

void DeleteAllL(lista *L){
	L->k = 0;
}

void InitL(lista *L){
	L->k = 0;

}