private void printAcross( ArrayList<Pair> pairs, Node u, BitSet incoming )
		throws MVDException
	{
		int hint = -1;
        Arc selected = u.pickOutgoingArc( incoming );
        if ( selected != null )
		{
			if ( selected.to.isPrintedIncoming( selected.versions) )
                System.out.println("incoming arc already printed");
            // add an empty tuple as a hint if required
			BitSet clique = u.getClique(selected);
			if ( !clique.isEmpty() )
			{
				hint = pairs.size(); 
				//System.out.println("creating hint at "+hint);
				clique.set( 0 );
				// create a hint
				Pair h = new Pair(clique,new char[0]);
				pairs.add( h );
			}
			hint = printDown( pairs, selected, hint );
			ListIterator<Arc> iter = u.outgoingArcs();
			while ( iter.hasNext() )
			{
				Arc a = iter.next();
				if ( a != selected )
					hint = printDown( pairs, a, hint );
			}
		}
	}