public void removeAssignment(int meeting)
	{
		Integer timeslot = this.Assignment.remove(meeting);
		
		if(timeslot == null)
			return;
		
		ArrayList<Integer> slots = new ArrayList<Integer>();
		for(int j = 0; j < this.NumTimeSlots; j ++)
		{
			slots.add(j + 1);
		}
		this.SlotsForMeetings.put(meeting, slots);
		
		ArrayList<Integer> connectedMeetings = this.getConnectedMeetings(meeting);
		for(Integer cm: connectedMeetings)
		{
			if(this.Assignment.containsKey(cm)) // for meetings that already assigned
			{
				ArrayList<Integer> allSlots = this.SlotsForMeetings.get(meeting);
				Integer cmSlot = this.Assignment.get(cm);
				allSlots.remove(cmSlot);
//				Integer i1 = cmSlot + 1;
//				allSlots.remove(i1);
//				Integer i2 = cmSlot - 1;
//				allSlots.remove(i2);
				
				this.SlotsForMeetings.put(meeting, allSlots);
			}
			else //not assigned, connected meetings
			{
				ArrayList<Integer> cmSlots = this.SlotsForMeetings.get(cm);
				if(!cmSlots.contains(timeslot))
				{
					cmSlots.add(timeslot);
//					Integer i1 = timeslot - 1;
//					if(i1 > 0 && !cmSlots.contains(i1))
//					{
//						cmSlots.add(i1);
//					}
//					
//					Integer i2 = timeslot + 1;
//					if(i2 <= this.NumTimeSlots && !cmSlots.contains(i2))
//					{
//						cmSlots.add(i2);
//					}
				}

				ArrayList<Integer> cmConnectedMeetings = this.getConnectedMeetings(cm);
				for(Integer cmcm: cmConnectedMeetings)
				{
					if(this.Assignment.containsKey(cmcm))
					{
						Integer rmSlot = this.Assignment.get(cmcm);
						cmSlots.remove(rmSlot);
//						Integer i1 = rmSlot + 1;
//						cmSlots.remove(i1);
//						Integer i2 = rmSlot - 1;
//						cmSlots.remove(i2);
					}
				}
				this.SlotsForMeetings.put(cm, cmSlots);
			}
		}
	}