a:6:{i:0;s:28957:"				<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
									<div class="h1"><h1>4 Nights 5 Days</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.vnandamantourtravel.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.vnandamantourtravel.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>4 Nights 5 Days</p> 
										<div class="fo">
					<div class="db vat pr slideArrow">				
												<ul class="bxslider11 fx-height lh0" style="margin:0px;padding:0px;">
																	<li class="pr">
										<div>										
										<div class="lh0 pa blur-bg" style="background:url(https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/291344.jpg);"></div>
										<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/291344.jpg">
										<div class="slide-fixImag" style="margin:0 9%;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/291344.jpg"  height=""  width=""    alt="4 Nights 5 Days" title="4 Nights 5 Days"  /></div>
										</a>
										</div>
										</li>
																	</ul>
												<div class="sliderCont-Layer">
					<div class="dt w100">
					<div class="dtc vam"><p class="xxxlarge fw7 lh13em">4 Nights 5 Days 
					
											<span class="fw3 xsmall yellow">(
						4 Nights / 5 Days 
						)</span>
											</p>
											<p class="mt5px"><span class="fw6">Destination Covered</span> : Port Blair ,,Rose Island ,,Havelock Island ,,Nort Bay Island,,Baratang Island ,,</p>
											</div>
					<div class="dtc w200px vam"></div>
					</div>
					</div>
					<div class="slidePrice ac">
					<p class="xxlarge red mb12px">
											<span class="xxxlarge fw7"><i class="fa fa-inr"></i> 29260</span>
						<span class="db ttu xsmall mt5px">Per Person</span>
											</p>
											<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.vnandamantourtravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="4 Nights 5 Days - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig c3px dib p10px15px xlarge fw6">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="187082"/>
						</form>
											</div> 
					
					<script>			
					jQuery('.bxslider11').bxSlider({
					  mode:'horizontal',
					  slideWidth:840,
					  auto:true,
					  autoControls:false,
					  stopAutoOnClick:true,
					  pager:false
					});
					</script>
					</div>
					</div>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div>
												<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">Andaman Island houses some amazing beaches and islands along with the beautiful capital city to turn your dream vacation into a reality. Blessed with lush green forests and white sand beaches, it offers an ideal place to holiday with your family and friends and have a good time.<br />
At Tour My India, we offer 4 nights and 5 days Port Blair, Havelock withBaratang Island  tour that will cover most of the Andaman Excursion you would like to explore while holidaying in Andaman Island. Our tour includes a visit to some wonderful beaches of the island along with a Port Blair City Tour so that you can make the most of your vacation and take away many lifetime memories with us.<br />
This is a Perfect Tour for Those Coming for 5 Days to The Andaman Islands. You cover all the top 5 ISLAND in Andaman and good enough leisure time is also present. All attractions in Havelock and Baratang Island are covered in this tour program.</p>
						</div>
														<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> DAY 1:  ARRIVE TO PORT BLAIR										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												On arrive at Port Blair, our representative receive you at Airport /Harbor and escorted you to check in to the Hotel Resort. After check-in at the hotel and little relax, we start the journey with Anthropological Museum, which displays the tools, models habitats, art and handcrafts of the aboriginal tribes of Andaman & Nicobar Islands.<br />
Cellular Jail, and then proceed to Corbin’s Cove beach. At evening, the Light and Sound Show at Cellular Jail where The Saga of the Freedom Struggle Brought Alive.															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 2											
											:</b> Day 02: Port Blair – Coral Island + Ross Island:-										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After Breakfast For a Full-Day Excursion To North Bay (Coral Island)– To See Coral Reefs, Varieties of Beautiful Ornamental Fishes and Other Marine Life. This is an Ideal Place for Snorkeling as This Sandy Beach Coupled with Clear Water Creates a Breath - Taking Spectacle. Optional Activities – Snorkeling, Scuba Diving, Glass Bottom Ride, after that proceed for Ross Island, The Former Residential And administrative island of the British during the rule of South East Asia, was nick named the Paris of the east. This Island is an Ideal Destination for Nature Walk amidst Sylvan Surrounding with Deer’s, Peacock Exotic Birds etc... .Night Stay at Port Blair			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 3											
											:</b> DAY 3:  Port Blair to Havelock  Island:-										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												DAY 3:  PORT BLAIR – HAVELOCK ISLAND :-<br />
Today, we start journey towards Havelock Island via luxury cruise from Port Blair. On arrival at Havelock Island, our representative will Receive and escort you to check-in to the resort. After lunch, we proceed to Radhanagar Beach, which rated the #7 among the finest beach In Asia. It is an ideal place for swimming, sea bathing and basking on the sun kissed beach. Evening Retun to Port Blair .....Night Stay At port Blair.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 4											
											:</b> DAY 4:  Port Blair to Baratang Island:-										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												DAY 4:  Port Blair to Baratang Island:-<br />
Baratang Day Trip Early Morning Proceed for Baratang Island. The Journey by Road. Then Proceed For limestone Cave and Return to Port Blair and Stay Overnight at Hotel			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 5											
											:</b> DAY 5: Hotel To Air Port Drop.										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Drop to Airport. Fly back with ever lasting memories of these emerald Islands			
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>CP (Room + Breakfast)</li>
																						<li>Hotel</li>
																						<li>Transport</li>
																						<li>Transfers</li>
																						<li>Airport Pickup-Drop</li>
																				<li>1. Accommodation in AC Rooms as given at Hotels in Port Blair with Breakfast and all taxes.</li><li>
2. All Entry Tickets & ferry Tickets and Permit Charges.</li><li>
3. All sightseeing By 01 Personal A/c Vehicles. </li><li>
4.  Full day Tour with all Transfers including Airport Pickup and Drop.</li><li>
5. Havelock Transfers in Luxury cruise. OR Green ocen.</li><li>
6. 01 Dabble A/c Rooms. </li><li>
7.  Meet and Greet Service at the Airport.</li><li>
8. Personal Tour Coordinator to help you with any requirements during the Tour.</li><li>
9. Travel assistance by field executive at all the major entry exit points (Airport / Jetty /Jail / Water Sports Complex, etc).</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>1. Flight Tickets are not included. We recommend you to book Flight ticket by yourself as it will be cost. </li><li>
Effective and based upon your flexibility. However, if you want us to book the tickets then we can do it.  For you based upon availability.</li><li>
2. Other meals not mentioned laundry, telephone calls, and incidentals</li><li>
3. Any Personal expenses .room Service & Special Orders. Alcohol and non-alcoholic Beverage. </li><li>
4. Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary.</li><li>
4. Any extra excursion or sights caning apart From the suggested tour itinerary.</li><li>
5. Camera Tickets are not including in the mentioned cost of sightseeing & Transfers.</li><li>
6. Other meals not mentioned, laundry, telephone calls.</li><li>
7. Any cost arising due to natural calamities like, road blockage, political disturbances (strikes), etc (to be     .   Borne by the client, who is directly payable on the spot).</li><li>
8. Mandatory Meal Supplement on 24th/25th December and 31st December is not included. This Amount.   .   Should be paid directly at the hotel after arrival.</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* 20% Advance Percentage of total booking amount</li><li>
* Airfare/Transport fare to be paid full at one time in advance.</li><li>
Payments:For all the services contracted, certain advance payment should be made to hold the booking, on confirmed basis & the balance amount can be paid either before your departure from your country or upon arrival in INDIA but definitely before the commencement of the services. Management personnel’s hold the right to decide upon the amount to be paid as advance payment, based on the nature of the service & the time left for the commencement of the service.</li><li>
Apart from above in some cases like Special Train Journeys, hotels or resorts bookings during the peak season (X-Mas, New Year), full payment is required to be sent in advance</li></ul>						
								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								Our Liabilities & Limitations:
 Please note that after the finalization of the Tour/ service Cost, if there are any Hike in entrance fees of monuments / museums, Taxes, fuel cost or guide charges – by Govt of India, the same would be charged as extra.
We are  act only in the capacity of agent for the hotels, airlines, transporters, railways & contractors providing other services & all exchange orders, receipts, contracts & tickets issued by us are issued subject to terms & conditions under which these services are provided by them.
All itineraries are sample itineraries, intended to give you a general idea of the likely trip schedule. Numerous factors such as weather, road conditions, the physical ability of the participants etc. may dictate itinerary changes either before the tour or while on the trail. We reserve the right to change any schedule in the interest of the trip participants' safety, comfort & general wellbeing.
Our rates are based on the prevailing rates as negotiated by us with the hotels, airlines etc. Hotels and Airlines retain the right to modify the rates without notice. In case of such changes the rates quoted before the modification, can be changed by us according to the modifications by hotels or airlines. All hotel bookings are based on usual check in and check out time of the hotels until unless indicated in the itinerary.
We shall not be responsible for any delays & alterations in the programmer or expenses incurred – directly or indirectly – due to natural hazards, flight cancellations, accident, breakdown of machinery or equipment’s, breakdown of transport, weather, sickness, landslides, political closures or any untoward incidents.
We shall not be responsible for any loss, injury or damage to person, property, or otherwise in connection with any accommodation, transportation or other services, resulting – directly or indirectly – from any act of GOD, dangers, fire, accident, breakdown in machinery or equipment, breakdown of transport, wars, civil disturbances, strikes, riots, thefts, pilferages, epidemics, medical or custom department regulations, defaults, or any other causes beyond our control.
We do not have any insurance policy covering the expenses for accident, sickness, loss due to theft, or any other reasons. Visitors are advised to seek such insurance arrangements in their home country. All baggage’s & personal property/s at all times are at the client's risk.
Please Note: We will not be responsible for any costs arising out of unforeseen circumstances like landslides, road blocks, bad weather, etc.								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Price &amp; Rates</p>
						</div>				
				        <table class="mb15px bdrall bdreee w100 p5px15px formTable">
			            	<tr class="headVr b">
			                	<td class="p5px10px">No of pax</td>
			                    <td class="p5px10px">Age Limit</td>
			                    <td class="p5px10px">Price per pax (Rs)</td>
			                </tr>

															<tr>
				            	<td class="p5px10px">Adult</td>
				                <td class="p5px10px">2</td>
				                <td class="p5px10px">
			                				                		<b class="webrupee">INR</b>
			                					                	<b>29260</b> <small>/
			
			                		Adult			
			                	( With Tax )			
			                		
			                	</small></td>
				            	</tr>
				            					         </table>
						</div>
					 							<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
						
						<ul><li>* Upon cancellation, refund will be made after deducting the Retention Amount.</li><li>
* Retention Amount varies as per the number of days left before your package start date.</li><li>
Cancellation Policy: In the event of cancellation of tour / travel services due to any avoidable / unavoidable reason/s we must be notified of the same in writing. Cancellation charges will be effective from the date we receive advice in writing, and cancellation charges would be as follows:</li><li>
45 days prior to arrival: 10% of the Tour / service cost.</li><li>
15 days prior to arrival: 25% of the Tour / service cost.</li><li>
07 days prior to arrival: 50% of the Tour / service cost.</li><li>
48 hours prior to arrival OR No Show: No Refund.</li><li>
Note: Written cancellation will accept on all working days, except Sunday, Any cancellation sent on Sunday's will be considered on next working day (Monday).</li><li>
For the X-mas and New Year period from 20 Dec to 05 Jan the payment is non-refundable.</li><li>
In case you cancel the trip after commencement, refund would be restricted to a limited amount only which too would depend on the amount that we would be able to recover from the hoteliers/ contractors we patronize. For unused hotel accommodation, chartered transportation & missed meals etc. we do not bear any responsibility to refund.</li><li>
Please Note: We will not be responsible for any costs arising out of unforeseen circumstances like landslides, road blocks, bad weather, etc.</li><li>
* Refund will be made within 15 working days from the date of receipt of the cancellation.</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.vnandamantourtravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="4 Nights 5 Days - 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="187082"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(24)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(21)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-genting.htm" title="Packages in Genting">Genting</a> <b class="alpha50 bn small">(16)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-moga.htm" title="Packages in Moga">Moga</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-kolhapur.htm" title="Packages in Kolhapur">Kolhapur</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-mansa.htm" title="Packages in Mansa">Mansa</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-adilabad.htm" title="Packages in Adilabad">Adilabad</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-anantapur.htm" title="Packages in Anantapur">Anantapur</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-cuddapah.htm" title="Packages in Cuddapah">Cuddapah</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-south-andaman.htm" title="Packages in South Andaman">South Andaman</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-bemetara.htm" title="Packages in Bemetara">Bemetara</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-valsad.htm" title="Packages in Valsad">Valsad</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-banaue.htm" title="Packages in Banaue">Banaue</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(32)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/group-holidays-catid.htm" title="Group Packages">Group</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(18)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/boat-safari-holidays-catid.htm" title="Boat Safari Packages">Boat Safari</a> <b class="alpha50 bn small">(14)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/paddle-boats-holidays-catid.htm" title="Paddle Boats Packages">Paddle Boats</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/trekking-holidays-catid.htm" title="Trekking Packages">Trekking</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/water-skiing-holidays-catid.htm" title="Water Skiing Packages">Water Skiing</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/snorkeling-holidays-catid.htm" title="Snorkeling Packages">Snorkeling</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/scuba-diving-holidays-catid.htm" title="Scuba Diving Packages">Scuba Diving</a> <b class="alpha50 bn small">(14)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/parasailing-holidays-catid.htm" title="Parasailing Packages">Parasailing</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/kayaks-holidays-catid.htm" title="Kayaks Packages">Kayaks</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/water-scooters-holidays-catid.htm" title="Water Scooters Packages">Water Scooters</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/family-holidays-catid.htm" title="Family Packages">Family</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/jet-ski-ride-holidays-catid.htm" title="Jet Ski Ride Packages">Jet Ski Ride</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/snorkelling-holidays-catid.htm" title="Snorkelling Packages">Snorkelling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/boating-holidays-catid.htm" title="Boating Packages">Boating</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:54:"Book 4 Nights 5 Days - 4 Nights / 5 Days Tour Packages";i:2;s:175:"book 4 nights 5 days - 4 nights / 5 days tour packages, adventure tour packages, port blair ,,rose island ,,havelock island ,,nort bay island,,baratang island ,, tour packages";i:3;s:232:"Book 4 Nights 5 Days - 4 Nights / 5 Days tour packages from Vn Andaman Tour & Travels - Get attractive 4 Nights / 5 Days Adventure  tour packages for  Port Blair ,,Rose Island ,,Havelock Island ,,Nort Bay Island,,Baratang Island ,,.";i:4;s:1388:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair ,,Rose Island ,,Havelock Island ,,Nort Bay Island,,Baratang Island ,,"        
		                 },
		      "description": "Andaman Island houses some amazing beaches and islands along with the beautiful capital city to turn your dream vacation into a reality. Blessed with lush green forests and white sand beaches, it offers an ideal place to holiday with your family and friends and have a good time.
At Tour My India, we offer 4 nights and 5 days Port Blair, Havelock withBaratang Island  tour that will cover most of the Andaman Excursion you would like to explore while holidaying in Andaman Island. Our tour includes a visit to some wonderful beaches of the island along with a Port Blair City Tour so that you can make the most of your vacation and take away many lifetime memories with us.
This is a Perfect Tour for Those Coming for 5 Days to The Andaman Islands. You cover all the top 5 ISLAND in Andaman and good enough leisure time is also present. All attractions in Havelock and Baratang Island are covered in this tour program.",
		      "name": "4 Nights 5 Days",
		      "telephone": "+91-8008089220"
		    }
		    </script>
			";i:5;N;}