enum error_code{success,underflow,overflow,range_error,not_present,fail};
class ordered_list:public list<int>{
public:
	ordered_list();
	error_code insert(const int &data);
	error_code insert(int position,const int &data);
	error_code replace(int position,const int &data);
};
/******************************************************************/
error_code ordered_list::insert(const int &data)
{
	int s=size();
	int position;
	for(position=0;position<s;position++) {
		int list_data;
		retrieve(position,list_data);
		if(data>=list_data)break;
	}
	return list<int>::insert(position,data);
}
/******************************************************************/
error_code ordered_list::insert(int position,const int &data)
{
	int list_data;
	if(position>0){
		retrieve(position-1,list_data);
		if(data<list_data)
			return fail;
	}
	if(position<size()) {
		retrieve(position,list_data);
		if(data>list_data)
			return fail;
	}
	return list<int>::insert(poosition,data);
}
/******************************************************************/
