a:6:{i:0;s:22489:"				<div class="h1"><h1>Ultimate USA Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.travvelextent.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.travvelextent.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Ultimate USA Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						13 Nights / 14 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Washington, New York, Las Vegas, Orlando, San Francisco, United States Minor Outlying Islands</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 239990 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.travvelextent.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Ultimate USA Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="20878"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/274422/38387.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/274422/38387.jpg"  width="150" height="150"    alt="Ultimate USA Tour" title="Ultimate USA Tour" /></a></p></div></li>
																		<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/274422/38388.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/274422/38388.jpg"  width="150" height="150"    alt="Ultimate USA Tour" title="Ultimate USA Tour" /></a></p></div></li>
																		<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/274422/38389.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/274422/38389.jpg"  width="150" height="150"    alt="Ultimate USA Tour" title="Ultimate USA Tour" /></a></p></div></li>
																		<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/274422/38390.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/274422/38390.jpg"  width="150" height="150"    alt="Ultimate USA Tour" title="Ultimate USA Tour" /></a></p></div></li>
																		<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/274422/38392.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/274422/38392.jpg"  width="150" height="150"    alt="Ultimate USA Tour" title="Ultimate USA Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Deluxe<br />
Stay at mentioned hotels or similar<br />
Flights, including domestic legs as mentioned in the itinerary.<br />
Daily buffet breakfast and all Indian dinners.<br />
Visit to statue of Liberty by ferry.<br />
New York City tour and visit to Time Square, Trump Towers, Ground Zero, China Town, Rockefeller Center, Madisson Square and Central Park.<br />
Visit Niagara by night<br />
Maid of the Mist boat ride and Cave of the Winds<br />
Hersheys Chocolate World<br />
Guided City Tour of Washington DC covering Lincoln Memorial, Georgetown, Washington National Cathedral, The White House, Pentagon Building from outside, Supreme Court etc.<br />
Visit to Smithsonian Air and Space Museum<br />
Visit to Magic Kingdom in Orlando<br />
Visit to Sea World in Magic Kingdom in Orlando<br />
Visit to Universal Studio<br />
Guided Tour of Los Angeles covering Santa Monica beach, Venice Beach, Malibu beach, Chinese Theatre, Kodak Theatre, Farmers Market, Rodeo Drive, Beverly Hills.<br />
Guided Tour of San Francisco covering the famous landmarks of the city including fisherman<br />
<br />
Return flight included<br />
AnyFlight* Mumbai<br />
New York<br />
*You will be provided flights according to availability and at MakeMyTrip discretion.<br />
AnyFlight* San Francisco<br />
Mumbai<br />
*You will be provided flights according to availability and at MakeMyTrip discretion.<br />
<br />
New York:-Hotel Hilton<br />
Niagara:-Hotel Sheraton at falls<br />
Washington DC:- Hotel Comfort Inn<br />
Las Vegas,:-Luxor Las Vegas<br />
Los Angeles:-Hotel Radisson Downtown<br />
San Francisco:-Hotel Holiday Inn San Mateo.01-0531-07<br />						<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Arrive In New York
								</p>
								<p class="aj">Arrive at John F Kennedy or New Ark Airport. On arrival, you will be met by a representative. Arrive and check-in to Hotel Hilton HasBrouck or a hotel of similar standard. Enjoy lunch on your own and Indian dinner at a local restaurant. Enjoy a comfortable overnight stay at the hotel.</p>					
									<p><b>Meals : </b> Breakfast, Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> New York
								</p>
								<p class="aj">After a hearty breakfast at the hotel, proceed for Statue of Liberty. A ferry boat will take you to Liberty Island and Ellis Island. After that, proceed for guided City Tour of NYC Visit the Time Square, Trump Towers, Ground Zero, China Town, Rockefeller centre, Madison Square, Central Park. Enjoy lunch on your own & Indian dinner at a local restaurant. Enjoy a comfortable overnight stay at the hotel</p>					
									<p><b>Meals : </b> Breakfast, Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 3:</b> New York - Niagara Falls - 417 Miles / 671 Km
								</p>
								<p class="aj">After early breakfast at the hotel, check out and proceed to Niagara Falls (Approx. 7 hours’ drive).<br />
En route, enjoy lunch on your own. Arrive and check-in to Hotel Byblows Resort or a hotel of similar standard. Enjoy lunch on your own and Indian dinner at a local restaurant. Enjoy a comfortable overnight stay at the hotel.</p>					
									<p><b>Meals : </b> Breakfast, Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> BUFFALO - HERSHEY'S CHOCOLATE WORLD-295 miles / 472 km – WASHINGTON DCBuffalo - Hershey'S Chocolat
								</p>
								<p class="aj">After early breakfast at the hotel, check out and proceed to Hershey, PA (Approx. 5 Hours 15 Minutes’ drive). En-route visit the exciting Maid of the Mist boat ride and then enjoy Cave of the Winds up close to the falls. Visit Hershey’s Chocolate World. Enjoy Hershey’s Great American Chocolate Tour Ride. 3D Show & Chocolate Tasting Adventure (Tickets not included of 3D show & Tasting Adventure). Proceed to Washington DC (Approx. 3 Hours’ drive).Transfer to hotel and check-in to the Hotel Embassy Suites or a hotel of similar standard.Enjoy lunch on your own and Indian dinner at a local restaurant.Enjoy a comfortable overnight stay at the hotel.</p>					
									<p><b>Meals : </b> Breakfast, Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Washington Dc - City Tour - Orlando
								</p>
								<p class="aj">Enjoy breakfast at the hotel and check-out of the hotel. Proceed for Guided City Tour of Washington DC - The city tour covers Washington's major attractions such as the Lincoln Memorial, Georgetown, Washington National Cathedral, the White House, Pentagon Building from outside, Supreme Court, Lincoln Memorial, Vietnam Veteran's Memorials and the Smithsonian Air and Space Museum. Enjoy lunch on your own. By evening, proceed to Washington Airport for your flight to Orlando. Arrive in Orlando, transfer and check in to the hotel Crowne Plaza Downtown a hotel of similar standard. In the evening, enjoy Indian dinner at a local restaurant. Enjoy a comfortable overnight stay at the hotel.</p>					
									<p><b>Meals : </b> Breakfast, Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 6:</b> Orlando - Magic Kingdom
								</p>
								<p class="aj">Enjoy a hearty breakfast at the hotel. Take Shuttle to the Disney World and hop to the happiest land, the Magic Kingdom, where the legend of Mickey Mouse begins. [Park transfers will be by shuttle - confirm timing with front desk] Magic Kingdom is spread over 107 acres and leads to these 5 whimsical lands: Adventure land, Frontier land, Liberty Square, Fantasyland, and Tomorrow land, Rides – Space Mountain, Splash Mountain, Big thunder Mountain Railroad. Continuous slow ride- Haunted Mansion, It’s a small world, The barnstormer, Jungle cruise, Peter Pan flight, Pirates of Caribbean and the 9 PM Electrical Parade (If you opt to stay for Firework show, private transfer cost approx. $30 per person (min 2 pax). Enjoy lunch on your own in the theme park. In the evening, enjoy Indian dinner at a local restaurant. Return to the hotel and enjoy a comfortable overnight stay.</p>					
									<p><b>Meals : </b> Breakfast, Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 7:</b> Orlando - Magic Kingdom
								</p>
								<p class="aj">Enjoy a hearty breakfast at the hotel. Take a shuttle to the Sea World. Enjoy rides like Manta, Journey to Atlantis, Kraken, Jazzy Jellies, Sky Tower, wild Artic Ride. Shows - Alure the Call of the Ocean, Blue Horizons, Clyde and Seamore Take Pirate Island, One Ocean, Pets Ahoy (timings 9 am – 10 pm),  Shamu whale show, Blue Horizons Dolphin Show , Clyde and Seamore Sea Lion Show, A'Lure, the Call of the Ocean acrobatic show, Pets Ahoy trained pet show: Rides- Kraken roller coaster: Manta roller coaster: Journey into Atlantis ride, Wild Arctic Adventure: Sky Tower: shipwreck rapids ride, World of the sea aquarium, sea lion show, penguin and shark encounter.<br />
Enjoy a hearty lunch on your own. Late afternoon, head to outlet malls. Enjoy shopping! In the evening, enjoy Indian dinner at a local restaurant. Return to the hotel and enjoy a comfortable overnight stay.</p>					
									<p><b>Meals : </b> Breakfast, Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 8:</b> Orlando - Universal Studio
								</p>
								<p class="aj">Enjoy a hearty breakfast at the hotel. Take Shuttle to the Universal Studio. Like Universal Studios in Hollywood, Orlando's Universal Studios is a combination working movie studio and theme park. What this means essentially is that you can admire stars from afar and live vicariously through them. Some of the best attractions for reliving the experience include Terminator 2: 3D, a spectacular 3D simulator experience where you get to be Arnold; Back to the Future, which has phenomenal special effects; and Earthquake - The Big One, which is known to hit 8.3 on the Richter scale. Popular shows include the Animal Actors, Dynamite Nights Stuntacular, Ghostbusters and the Gory Gruesome & Grotesque Horror Makeup Show. The Hitchcock 3D Theater is a tribute to the master of suspense. In the evening, enjoy Indian dinner at a local restaurant.<br />
Breakfast Dinner</p>					
									<p><b>Meals : </b> Breakfast, Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 9:</b> Orlando - Las Vegas
								</p>
								<p class="aj">Enjoy a hearty breakfast at the hotel. Check out of the hotel and proceed to Orlando airport for your flight to Las Vegas. Arrive in Las Vegas, transfer to the hotel & check-in at Hotel Luxor or a hotel of similar standard. The day is free to spend at leisure. Enjoy lunch on your own.In the evening, enjoy Indian dinner at a local restaurant. Enjoy a comfortable overnight stay at the hotel</p>					
									<p><b>Meals : </b> Breakfast, Dinner</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 10:</b> Las Vegas
								</p>
								<p class="aj">Las Vegas Las Vegas<br />
Enjoy a hearty breakfast at the hotel. The day is free to spend at leisure. Optional: Day trip to Grand Canyon. Enjoy lunch on your own. In the evening, enjoy Indian dinner at a local restaurant. Return to the hotel for a comfortable overnight stay</p>					
									<p><b>Meals : </b> Breakfast, Dinner</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Las Vegas - Los Angeles Distance: 229 Miles/ 368 Km/4 ½ Hours
									</p>
									<p class="aj">Enjoy a hearty breakfast at the hotel. Check out of the hotel and proceed to Los Angeles.<br />
After having lunch on your own, proceed for a guided City Tour of Los Angeles. Santa Monica beach, Venice Beach, Malibu beach, Chinese Theatre, Kodak Theatre, Farmers Market, Rodeo Drive, Beverly Hills. Check into Hotel Radisson or a hotel of similar standard.In the evening, enjoy Indian dinner at a local restaurant. Return to the hotel for a comfortable overnight stay.</p>					
										<p><b>Meals : </b> Breakfast, Dinner</p>
									</td>	
									</tr>
									</table>				
									</div>
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 12:</b> Los Angeles - San Francisco - 381 Miles / 613 Km
									</p>
									<p class="aj">After an early breakfast at the hotel, check-out and proceed to San Francisco (7 hours drive).<br />
En route, have lunch on your own. Arrive in San Francisco and check into the Hotel Holiday Inn San Mateo or a hotel of similar standard.In the evening, enjoy Indian dinner at a local restaurant.<br />
Return to the hotel for a comfortable overnight stay.</p>					
										<p><b>Meals : </b> Breakfast, Dinner</p>
									</td>	
									</tr>
									</table>				
									</div>
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 13:</b> San Francisco
									</p>
									<p class="aj">Enjoy a hearty breakfast at the hotel. Proceed for Bay Cruise – an exciting cruise of the bay that whizzes past historical and breath-taking sights such as the Golden Gate bridge, Alcatraz Island, Downtown, Marina etc. Have a sumptuous lunch on your own. In the afternoon, proceed for a Guided City tour of San Francisco– Visit the famous landmarks of the city including fisherman’s wharf, Nob hill, Financial district, Twin Peaks, Lombard street, china town, Golden Gate Bridge park, Civic Centre, Alamo Square, and Union Square. In the evening, enjoy Indian dinner at a local restaurant. Return to the hotel for a comfortable overnight stay.</p>					
										<p><b>Meals : </b> Breakfast, Dinner</p>
									</td>	
									</tr>
									</table>				
									</div>
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 14:</b> San Francisco - Departure
									</p>
									<p class="aj">Enjoy a hearty breakfast at the hotel. Check out of the hotel before 11 am and proceed to the airport by shuttle to board your departure flight.</p>					
										<p><b>Meals : </b> Breakfast</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>Flights</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>may:-2.9.16.23<br />
jun:-6,13,20,27<br />
jul:-4,11<br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>INR 2,39,990
Price Per Adult Twin Sharing Basis+3.09%GST ex
mumbai nad New Delhi<br /><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>Personal expenses of any kind like laundry, SIM cards, charges in the hotel for any additional services Personal insurance and tips are not included in the price and are to borne by the clients Service tax is additional and is applicable over and above the total tour cost Rate of Exchange (ROE) taken for computing the above price is Rs.60 to 1 USD.</li>
	<li>In the event of an increase in the ROE taken into account, the prices defined may be amended.</li>
	<li>The taxes and visa charges mentioned are as on date (1st January, 2013) and may be amended.</li>
	<li>A surcharge may be applicable for certain departures dates. Due to operational reasons, the routing of this tour may vary.</li>
</ul>

<p><strong>Cancellation Policy</strong>

<ul>
	<li>A non - refundable deposit of Rs.20,000 per person to initiate a booking, if travel date is more than 50 days from the date of booking.</li>
	<li>A non-refundable deposit of 50% of tour cost, if travel date is more than 20 days from the date of booking.</li>
	<li>If the date of travel is less than 7 days, a non-refundable deposit of 100% of the total cost shall be applicable.</li>
	<li>Photocopies of the passport. Full payment is required on confirmation of all services and before departure:</li>
	<li>Cancellation Policy Charges Prior to 45 days or more: Booking Deposit of INR 20,000/- per person Between 44 - 31 days of departure:</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.travvelextent.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Ultimate USA Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="20878"/>
						</form>
						</div>
						
						";i:1;s:58:"Book Ultimate USA Tour - 13 Nights / 14 Days Tour Packages";i:2;s:200:"book ultimate usa tour - 13 nights / 14 days tour packages, forts and palaces tour packages, washington, new york, las vegas, orlando, san francisco, united states minor outlying islands tour packages";i:3;s:248:"Book Ultimate USA Tour - 13 Nights / 14 Days tour packages from Travvel Extent - Get attractive 13 Nights / 14 Days Forts and Palaces  tour packages for  Washington, New York, Las Vegas, Orlando, San Francisco, United States Minor Outlying Islands.";i:4;s:1974:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Washington, New York, Las Vegas, Orlando, San Francisco, United States Minor Outlying Islands"        
		                 },
		      "description": "Deluxe
Stay at mentioned hotels or similar
Flights, including domestic legs as mentioned in the itinerary.
Daily buffet breakfast and all Indian dinners.
Visit to statue of Liberty by ferry.
New York City tour and visit to Time Square, Trump Towers, Ground Zero, China Town, Rockefeller Center, Madisson Square and Central Park.
Visit Niagara by night
Maid of the Mist boat ride and Cave of the Winds
Hersheys Chocolate World
Guided City Tour of Washington DC covering Lincoln Memorial, Georgetown, Washington National Cathedral, The White House, Pentagon Building from outside, Supreme Court etc.
Visit to Smithsonian Air and Space Museum
Visit to Magic Kingdom in Orlando
Visit to Sea World in Magic Kingdom in Orlando
Visit to Universal Studio
Guided Tour of Los Angeles covering Santa Monica beach, Venice Beach, Malibu beach, Chinese Theatre, Kodak Theatre, Farmers Market, Rodeo Drive, Beverly Hills.
Guided Tour of San Francisco covering the famous landmarks of the city including fisherman

Return flight included
AnyFlight* Mumbai
New York
*You will be provided flights according to availability and at MakeMyTrip discretion.
AnyFlight* San Francisco
Mumbai
*You will be provided flights according to availability and at MakeMyTrip discretion.

New York:-Hotel Hilton
Niagara:-Hotel Sheraton at falls
Washington DC:- Hotel Comfort Inn
Las Vegas,:-Luxor Las Vegas
Los Angeles:-Hotel Radisson Downtown
San Francisco:-Hotel Holiday Inn San Mateo.01-0531-07",
		      "name": "Ultimate USA Tour",
		      "telephone": "+91-9706071620"
		    }
		    </script>
			";i:5;N;}