public int getFrom(String who, String from, int at) throws InterruptedException
	{
		int element;
		System.out.println( who + " chce pobrac " + at + " element ze zbioru " + from);
		
		if( ("A").equalsIgnoreCase(from) )
		{
			if( semaphoreA.availablePermits() == 0)	// sprawdzenie czy semafor A jest opuszczony
				System.out.println( who + " musi poczekac - semafor na zbiorze A jest opuszczony");
			
			semaphoreA.acquire();
			System.out.println( who + " zajol zasob i opuscil semafor na zbior A");
			
			// ************************************
			Thread.sleep((long) (Math.random() * 1000));				// imitacja zajetosci procesu
			// ************************************
			
			element = (int) getElementFromA(at);
			System.out.println( who + " zwolnil zasob i podniosl semafor ze zbioru A\n");
			semaphoreA.release();
			return element;
		}
		else
		{
			if( semaphoreB.availablePermits() == 0 ) // sprawdzenie czy semafor A jest opuszczony
				System.out.println( who + " musi poczekac - semafor na zbiorze B jest opuszczony");
			
			semaphoreB.acquire();
			System.out.println( who + " zajol zasob i opuscil semafor na zbior B");
			// ************************************
			Thread.sleep((long) (Math.random() * 1000));				// imitacja zajetosci procesu
			// ***********************************
			element = (int) getElementFromB(at);
			System.out.println( who + " zwolnil zasob i podniosl semafor ze zbioru B\n");
			semaphoreB.release();
			return element;
		}
			

	}