public ArrayList<Node> generateBridgedER(int n1,int n2, double p1, double p2, int b){
        ArrayList<Node> c1 = generateConnectedER(n1,p1);
        ArrayList<Node> c2 = generateConnectedER(n2,p2);
        for(int i= 0;i<n2;i++)
        {
            c2.get(i).resetID(i+n1);
        }
        ArrayList<Node> nodes = new ArrayList<Node>();
        for(int i=0;i<n1;i++)
        {
            nodes.add(c1.remove(0));
        }
        for(int i=0;i<n2;i++)
        {
            nodes.add(c2.remove(0));
        }
        Random gen = new Random();
        Link link;
        Set<Integer> usedNodes = new HashSet<Integer>();
        int s,d;
        while(usedNodes.size() < 2*b)
        {
            s = gen.nextInt(n1);
            while(usedNodes.contains(s))
            {
                s = gen.nextInt(n1);
            }
            usedNodes.add(s);
            d = n1 + gen.nextInt(n2);
            while(usedNodes.contains(d))
            {
                d = n1 + gen.nextInt(n2);
            }
            usedNodes.add(d);
            link = new Link(nodes.get(s));
            nodes.get(d).addLink(link);
            link = new Link(nodes.get(d));
            nodes.get(s).addLink(link);
        }
        return nodes;
    }